Configure i3 darkmodeΒΆ
To toggle between dark-mode and light-mode the following script can be used:
#!/bin/bash
current=$(gsettings get org.gnome.desktop.interface color-scheme)
if [ $? -ne 0 ]; then echo "Could not fetch current color-scheme" >&2; exit 1; fi
echo "Current color-scheme: $current"
profile=$(gsettings get org.gnome.Terminal.ProfilesList default)
profile=${profile:1:-1}
case "$current" in
"'prefer-dark'")
new_color_scheme="prefer-light"
gsettings set "org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$profile/" use-theme-colors false
gsettings set "org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$profile/" foreground-color '#2e3440'
gsettings set "org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$profile/" background-color '#ffffff'
;;
"'prefer-light'"|"'default'")
new_color_scheme="prefer-dark"
gsettings set "org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$profile/" use-theme-colors false
gsettings set "org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$profile/" foreground-color '#cdd6f4'
gsettings set "org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:$profile/" background-color '#1e1e2e'
;;
esac
echo "New color-scheme: $new_color_scheme"
if ! $(gsettings set org.gnome.desktop.interface color-scheme "$new_color_scheme"); then
echo "Could not set new color-scheme" >&2
exit 1
fi
It is inspired by this article
The scripts asserts that you use gnome-terminal which does not support automatic adaption to system dark mode so it does the configuration manually.