From 3440f89019a4db30b21f540d61af30b7bec26345 Mon Sep 17 00:00:00 2001 From: Derek Taylor Date: Mon, 6 Dec 2021 19:25:45 -0600 Subject: [PATCH] Adding menu that allows quick changing colorscheme in XMonad. --- .local/bin/dtos-colorscheme | 38 +++++++++++++++++++++++++++++++++++++ .xmonad/README.org | 31 +++++++++++++++--------------- .xmonad/xmonad.hs | 31 +++++++++++++++--------------- 3 files changed, 70 insertions(+), 30 deletions(-) create mode 100755 .local/bin/dtos-colorscheme diff --git a/.local/bin/dtos-colorscheme b/.local/bin/dtos-colorscheme new file mode 100755 index 0000000..9b5cbc9 --- /dev/null +++ b/.local/bin/dtos-colorscheme @@ -0,0 +1,38 @@ +#!/usr/bin/env bash +# +# Script name: dtos-colorscheme +# Description: Change colorscheme in DTOS. +# Dependencies: dmenu, dmscripts +# GitLab: https://www.gitlab.com/dwt1/dtos +# License: https://www.gitlab.com/dwt1/dtos/LICENSE +# Contributors: Derek Taylor + +# Set with the flags "-e", "-u","-o pipefail" cause the script to fail +# if certain things happen, which is a good thing. Otherwise, we can +# get hidden bugs that are hard to discover. +set -euo pipefail + +# shellcheck disable=SC1091 +source "$HOME/.config/dmscripts/config" + +options=("DoomOne" +"Dracula" +"GruvboxDark" +"MonokaiPro" +"Nord" +"OceanicNext" +"Palenight" +"SolarizedDark" +"SolarizedLight" +"TomorrowNight") + +choice=$(printf '%s\n' "${options[@]}" | ${DMENU} 'Choose color scheme:' "${@}") + +if [ "$choice" ]; then + sed -i "s/import Colors.*/import Colors.$choice/g" "$HOME"/.xmonad/README.org || echo "Cannot modify README.org" + sed -i "s/import Colors.*/import Colors.$choice/g" "$HOME"/.xmonad/xmonad.hs || echo "Cannot modify xmonad.hs" + xmonad --restart +# What to do if we just escape without choosing anything. +else + echo "Program terminated." && exit 0 +fi diff --git a/.xmonad/README.org b/.xmonad/README.org index a82d33f..f6e1ddf 100644 --- a/.xmonad/README.org +++ b/.xmonad/README.org @@ -489,21 +489,22 @@ myKeys = -- KB_GROUP Other Dmenu Prompts -- In Xmonad and many tiling window managers, M-p is the default keybinding to -- launch dmenu_run, so I've decided to use M-p plus KEY for these dmenu scripts. - , ("M-p h", spawn "dm-hub") -- allows access to all dmscripts - , ("M-p a", spawn "dm-sounds") -- choose an ambient background - , ("M-p b", spawn "dm-setbg") -- set a background - , ("M-p c", spawn "dm-colpick") -- pick color from our scheme - , ("M-p e", spawn "dm-confedit") -- edit config files - , ("M-p i", spawn "dm-maim") -- screenshots (images) - , ("M-p k", spawn "dm-kill") -- kill processes - , ("M-p m", spawn "dm-man") -- manpages - , ("M-p n", spawn "dm-note") -- store one-line notes and copy them - , ("M-p o", spawn "dm-bookman") -- qutebrowser bookmarks/history - , ("M-p p", spawn "passmenu") -- passmenu - , ("M-p q", spawn "dm-logout") -- logout menu - , ("M-p r", spawn "dm-reddit") -- reddio (a reddit viewer) - , ("M-p s", spawn "dm-websearch") -- search various search engines - , ("M-p t", spawn "dm-translate") -- translate text (Google Translate) + , ("M-p h", spawn "dm-hub") -- allows access to all dmscripts + , ("M-p a", spawn "dm-sounds") -- choose an ambient background + , ("M-p b", spawn "dm-setbg") -- set a background + , ("M-p c", spawn "dtos-colorscheme") -- choose a colorscheme + , ("M-p C", spawn "dm-colpick") -- pick color from our scheme + , ("M-p e", spawn "dm-confedit") -- edit config files + , ("M-p i", spawn "dm-maim") -- screenshots (images) + , ("M-p k", spawn "dm-kill") -- kill processes + , ("M-p m", spawn "dm-man") -- manpages + , ("M-p n", spawn "dm-note") -- store one-line notes and copy them + , ("M-p o", spawn "dm-bookman") -- qutebrowser bookmarks/history + , ("M-p p", spawn "passmenu") -- passmenu + , ("M-p q", spawn "dm-logout") -- logout menu + , ("M-p r", spawn "dm-reddit") -- reddio (a reddit viewer) + , ("M-p s", spawn "dm-websearch") -- search various search engines + , ("M-p t", spawn "dm-translate") -- translate text (Google Translate) -- KB_GROUP Useful programs to have a keybinding for launch , ("M-", spawn (myTerminal)) diff --git a/.xmonad/xmonad.hs b/.xmonad/xmonad.hs index 55fc85b..f44a8c2 100644 --- a/.xmonad/xmonad.hs +++ b/.xmonad/xmonad.hs @@ -373,21 +373,22 @@ myKeys = -- KB_GROUP Other Dmenu Prompts -- In Xmonad and many tiling window managers, M-p is the default keybinding to -- launch dmenu_run, so I've decided to use M-p plus KEY for these dmenu scripts. - , ("M-p h", spawn "dm-hub") -- allows access to all dmscripts - , ("M-p a", spawn "dm-sounds") -- choose an ambient background - , ("M-p b", spawn "dm-setbg") -- set a background - , ("M-p c", spawn "dm-colpick") -- pick color from our scheme - , ("M-p e", spawn "dm-confedit") -- edit config files - , ("M-p i", spawn "dm-maim") -- screenshots (images) - , ("M-p k", spawn "dm-kill") -- kill processes - , ("M-p m", spawn "dm-man") -- manpages - , ("M-p n", spawn "dm-note") -- store one-line notes and copy them - , ("M-p o", spawn "dm-bookman") -- qutebrowser bookmarks/history - , ("M-p p", spawn "passmenu") -- passmenu - , ("M-p q", spawn "dm-logout") -- logout menu - , ("M-p r", spawn "dm-reddit") -- reddio (a reddit viewer) - , ("M-p s", spawn "dm-websearch") -- search various search engines - , ("M-p t", spawn "dm-translate") -- translate text (Google Translate) + , ("M-p h", spawn "dm-hub") -- allows access to all dmscripts + , ("M-p a", spawn "dm-sounds") -- choose an ambient background + , ("M-p b", spawn "dm-setbg") -- set a background + , ("M-p c", spawn "dtos-colorscheme") -- choose a colorscheme + , ("M-p C", spawn "dm-colpick") -- pick color from our scheme + , ("M-p e", spawn "dm-confedit") -- edit config files + , ("M-p i", spawn "dm-maim") -- screenshots (images) + , ("M-p k", spawn "dm-kill") -- kill processes + , ("M-p m", spawn "dm-man") -- manpages + , ("M-p n", spawn "dm-note") -- store one-line notes and copy them + , ("M-p o", spawn "dm-bookman") -- qutebrowser bookmarks/history + , ("M-p p", spawn "passmenu") -- passmenu + , ("M-p q", spawn "dm-logout") -- logout menu + , ("M-p r", spawn "dm-reddit") -- reddio (a reddit viewer) + , ("M-p s", spawn "dm-websearch") -- search various search engines + , ("M-p t", spawn "dm-translate") -- translate text (Google Translate) -- KB_GROUP Useful programs to have a keybinding for launch , ("M-", spawn (myTerminal))