summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmin Bandali <bandali@gnu.org>2021-10-19 00:36:37 -0400
committerAmin Bandali <bandali@gnu.org>2021-10-19 00:36:37 -0400
commit298f42fef8c1cb876c6596cbca3920a549a9a6d0 (patch)
treefa4b4754c2bcb1094898541f569b46d55e55f5d3
parent7dd9938023b620a4e65b57a50d5414ac577abf0c (diff)
downloadconfigs-298f42fef8c1cb876c6596cbca3920a549a9a6d0.tar.gz
configs-298f42fef8c1cb876c6596cbca3920a549a9a6d0.tar.xz
configs-298f42fef8c1cb876c6596cbca3920a549a9a6d0.zip
add change-theme script
allows changing themes for future application instances as well as currently-running ones on the fly. xterm and emacs have been tested and are known to work so far.
-rw-r--r--.bashrc5
-rw-r--r--.config/i3/config11
-rwxr-xr-x.local/bin/change-theme30
3 files changed, 45 insertions, 1 deletions
diff --git a/.bashrc b/.bashrc
index 321c1de..471b1a4 100644
--- a/.bashrc
+++ b/.bashrc
@@ -60,7 +60,7 @@ HISTFILESIZE=
# history.
HISTCONTROL=ignoreboth
# ignore a few very common commands and don't add them to history
-HISTIGNORE='ls:l:s:g:[bf]g:history'
+HISTIGNORE='ls:l:ll:s:g:[bf]g:history:da:li'
HISTTIMEFORMAT='%F %T '
stty stop ""
@@ -84,6 +84,9 @@ alias e="$EDITOR"
alias se="SUDO_EDITOR=\"emacsclient\" sudo -e"
alias s="startx"
+alias da='change-theme dark'
+alias li='change-theme light'
+
alias dquilt="quilt --quiltrc=${HOME}/.quiltrc-dpkg"
complete -F _quilt_completion -o filenames dquilt
diff --git a/.config/i3/config b/.config/i3/config
index 05bc178..c796761 100644
--- a/.config/i3/config
+++ b/.config/i3/config
@@ -167,6 +167,17 @@ mode "resize" {
}
bindsym $mod+r mode "resize"
+# change theme mode
+set $mode_theme theme (d)ark | (l)ight
+mode "$mode_theme" {
+ bindsym d exec change-theme dark, mode "default"
+ bindsym l exec change-theme light, mode "default"
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+ bindsym q mode "default"
+}
+bindsym $mod+t mode "$mode_theme"
+
# application-specific window configurations
for_window [class="mpv"] floating enable
for_window [class="Mumble"] floating enable
diff --git a/.local/bin/change-theme b/.local/bin/change-theme
new file mode 100755
index 0000000..5d997cd
--- /dev/null
+++ b/.local/bin/change-theme
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+dark_color='black' # #222
+light_color='white'
+
+if [ "$1" = "dark" ]; then
+ fg="$light_color"
+ bg="$dark_color"
+elif [ "$1" = "light" ]; then
+ fg="$dark_color"
+ bg="$light_color"
+else
+ echo "Usage: $0 {dark|light}"
+ exit 1
+fi
+
+# most applications using xresources
+printf "*.foreground: $fg\n*.background: $bg" | xrdb -override
+# xterm, basically
+printf "*VT100*foreground: $fg\n*VT100*background: $bg" | xrdb -override
+
+# emacs
+emacsclient -ue "(set-face-attribute 'default nil :foreground \"$fg\" :background \"$bg\")"
+# terminals
+for term in /dev/pts/*; do
+ if [ -w "$term" ]; then
+ printf "\033]10;$fg\a" > "$term"
+ printf "\033]11;$bg\a" > "$term"
+ fi
+done