diff --git a/local/share/dark-mode.d/breezedark.sh b/local/share/dark-mode.d/breezedark.sh new file mode 100755 index 00000000..568ddf33 --- /dev/null +++ b/local/share/dark-mode.d/breezedark.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +# This is all adapted from /usr/share/doc/darkman/examples/dark-mode.d/ + +# Notify of light theme switch +(notify-send --app-name="darkman" --urgency=low --icon=moon-phase-full "Moonlights" &) + +# GTK Theme +(gsettings set org.gnome.desktop.interface gtk-theme Breeze-Dark &) +(dbus-send --session --dest=org.kde.GtkConfig --type=method_call /GtkConfig org.kde.GtkConfig.setGtkTheme "string:Breeze" &) + +# Xfce theme? +(exec xfconf-query -c xsettings -p /Net/ThemeName -s 'Breeze' &) + +# Plasma +(lookandfeeltool --apply "org.kde.breezedark.desktop" &) diff --git a/local/share/dark-mode.d/fedora-wallpaper.sh b/local/share/dark-mode.d/fedora-wallpaper.sh new file mode 100755 index 00000000..dab6f0e4 --- /dev/null +++ b/local/share/dark-mode.d/fedora-wallpaper.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +export DISTROID=$(lsb_release -si) +export DISTROREL=$(lsb_release -sr) + +if [ "$DISTROID" == "Fedora" ]; then + export WALLPAPER_PATH="/usr/share/wallpapers/F$DISTROREL/contents/images_dark/3840x2160.png" +fi + +qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript 'var allDesktops = desktops();print (allDesktops);for (i=0;i Manage Profiles. You can select a dark or light theme in +# Appearance > Color scheme and font. The following script iterates over all +# instances of Konsole und changes the profile of all sessions. This is necessary, +# if there are multiple tabs in one of the Konsole instances. +# Reference: https://docs.kde.org/stable5/en/konsole/konsole/konsole.pdf + +PROFILE='Kali-Dark' + +# loop over all running konsole instances +for pid in $(pidof konsole); do + # TODO: loop over all windows of the instance, instead of only the first + + # loop over all sessions in the current window + for session in $(qdbus "org.kde.konsole-$pid" /Windows/1 sessionList); do + # change profile through dbus message + qdbus "org.kde.konsole-$pid" "/Sessions/$session" setProfile "$PROFILE" + done +done diff --git a/local/share/light-mode.d/breeze.sh b/local/share/light-mode.d/breeze.sh new file mode 100755 index 00000000..2a3d8fa9 --- /dev/null +++ b/local/share/light-mode.d/breeze.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +# This is all adapted from /usr/share/doc/darkman/examples/light-mode.d/ + +# Notify of light theme switch +(notify-send --app-name="darkman" --urgency=low --icon=weather-clear "Let there be light" &) + +# GTK Theme +(gsettings set org.gnome.desktop.interface gtk-theme Breeze &) +(dbus-send --session --dest=org.kde.GtkConfig --type=method_call /GtkConfig org.kde.GtkConfig.setGtkTheme "string:Breeze" &) + +# Xfce theme? +(exec xfconf-query -c xsettings -p /Net/ThemeName -s 'Breeze' &) + +# Plasma +(lookandfeeltool --apply "org.kde.breeze.desktop" &) diff --git a/local/share/light-mode.d/wallpaper.sh b/local/share/light-mode.d/wallpaper.sh new file mode 100755 index 00000000..135d45e7 --- /dev/null +++ b/local/share/light-mode.d/wallpaper.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +export DISTROID=$(lsb_release -si) +export DISTROREL=$(lsb_release -sr) + +if [ "$DISTROID" == "Fedora" ]; then + export WALLPAPER_PATH="/usr/share/wallpapers/F$DISTROREL/contents/images/3840x2160.png" +fi + +qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript 'var allDesktops = desktops();print (allDesktops);for (i=0;i Manage Profiles. You can select a dark or light theme in +# Appearance > Color scheme and font. The following script iterates over all +# instances of Konsole und changes the profile of all sessions. This is necessary, +# if there are multiple tabs in one of the Konsole instances. +# Reference: https://docs.kde.org/stable5/en/konsole/konsole/konsole.pdf + +PROFILE='Kali-Light' + +# loop over all running konsole instances +for pid in $(pidof konsole); do + # TODO: loop over all windows of the instance, instead of only the first + + # loop over all sessions in the current window + for session in $(qdbus "org.kde.konsole-$pid" /Windows/1 sessionList); do + # change profile through dbus message + qdbus "org.kde.konsole-$pid" "/Sessions/$session" setProfile "$PROFILE" + done +done