From 7e0796842a8dd3b13044ad50b34cfcc310ce6ade Mon Sep 17 00:00:00 2001 From: Bruno Carlin Date: Tue, 11 Feb 2025 15:23:05 +0100 Subject: [PATCH] feat: add a indicator for light/dark mode in waybar --- waybar/.config/waybar/config.jsonc | 12 ++++++++++++ waybar/.config/waybar/darkman | 19 +++++++++++++++++++ waybar/.config/waybar/style.css | 1 + 3 files changed, 32 insertions(+) create mode 100755 waybar/.config/waybar/darkman diff --git a/waybar/.config/waybar/config.jsonc b/waybar/.config/waybar/config.jsonc index 4bd3e5a..33566f9 100644 --- a/waybar/.config/waybar/config.jsonc +++ b/waybar/.config/waybar/config.jsonc @@ -17,6 +17,7 @@ "modules-right": [ "idle_inhibitor", "custom/ddcbrightness", + "custom/light-dark-mode", "pulseaudio", "network", "bluetooth", @@ -210,5 +211,16 @@ "format-ok": "", "system": true, // Monitor failed systemwide units. "user": true // Ignore failed user units. + }, + "custom/light-dark-mode": { + "exec": "/home/bca/.config/waybar/darkman", + "return-type": "json", + "format": "{icon}", + "tooltip": true, + "on-click": "darkman toggle", + "format-icons": { + "light": " ", + "dark": " " + } } } diff --git a/waybar/.config/waybar/darkman b/waybar/.config/waybar/darkman new file mode 100755 index 0000000..0105dd2 --- /dev/null +++ b/waybar/.config/waybar/darkman @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +# vim: ft=bash + +print_json() { + case "$1" in + prefer-dark) + echo '{"text": "dark", "alt": "dark", "class": "dark", "tooltip": "Dark mode"}' + ;; + prefer-light) + echo '{"text": "light", "alt": "light", "class": "light", "tooltip": "Light mode"}' + ;; + esac +} + +print_json "$(gsettings get org.gnome.desktop.interface color-scheme | cut -nd"'" -f 2)" +gsettings monitor org.gnome.desktop.interface color-scheme | while read -r l; do + print_json "$(echo "$l" | cut -d"'" -f 2)" +done + diff --git a/waybar/.config/waybar/style.css b/waybar/.config/waybar/style.css index 2fd9d7b..5199f96 100644 --- a/waybar/.config/waybar/style.css +++ b/waybar/.config/waybar/style.css @@ -97,6 +97,7 @@ button:hover { #idle_inhibitor, #scratchpad, #power-profiles-daemon, +#customcustom-light-dark-mode, #custom-ddcbrightness, #idle_inhibitor, #mpd {