diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-11 18:42:05 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-11 18:42:05 +0200 |
| commit | a77f24d657a6091022754adb1b30750748132216 (patch) | |
| tree | c3d898c6f29e06dd99893005bd4654941f58d1d3 | |
| parent | b7a660d5587b7d23dbcfbb39d14de22eb9600754 (diff) | |
| download | unified-desktop-theme-a77f24d657a6091022754adb1b30750748132216.tar.gz unified-desktop-theme-a77f24d657a6091022754adb1b30750748132216.zip | |
feat(install): reload running apps after generating configs
install.sh wrote every config and reloaded nothing, so a scheme switch looked
half-applied: the files were correct but waybar, kitty, conky and dunst kept
drawing the old colours until five commands were run by hand.
It now signals waybar, kitty and Hyprland, runs udt-accent (which regenerates
the accent and restarts dunst), and restarts conky, which has no hot-reload.
Each is guarded on the process actually running, so a missing one is skipped
rather than started: verified conky stays stopped when it was not up before.
rofi needs nothing, it reads its theme per launch. Qt and GTK apps still need
a manual restart and the README says so.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015gbjA2bmswN8jyPDKzrvqe
| -rw-r--r-- | AGENTS.md | 3 | ||||
| -rw-r--r-- | README.md | 6 | ||||
| -rwxr-xr-x | install.sh | 26 | ||||
| -rw-r--r-- | templates/conky.conf | 18 | ||||
| -rw-r--r-- | templates/dunstrc | 16 | ||||
| -rw-r--r-- | templates/homepage/custom.css | 36 |
6 files changed, 69 insertions, 36 deletions
@@ -163,6 +163,9 @@ them by exit code: rofi exits non-zero for ordinary reasons such as Escape. ## Reloading +`./install.sh` reloads everything running, so a scheme switch is one command. +The table is what it does, and what to run if you change a config by hand. + | | How | | --- | --- | | rofi | nothing; the theme is read per launch | @@ -41,7 +41,11 @@ Edit one line in `~/.config/udt/roles.conf`: and run `./install.sh`. That file is yours, not the repo's: `install.sh` creates it on a first run and never overwrites it, so switching scheme leaves -the working tree clean. Ships with `macchiato`, `tokyo-night`, `nord` and +the working tree clean. + +`install.sh` reloads whatever is running (waybar, kitty, Hyprland, dunst, +conky), so the switch is visible immediately. Qt and GTK apps only reread a +theme on startup, so those need restarting by hand. Ships with `macchiato`, `tokyo-night`, `nord` and `dracula`; rofi, dunst, conky, waybar, kitty, Firefox and quickshell all follow. @@ -77,5 +77,31 @@ if command -v scp >/dev/null 2>&1; then fi fi +# Reload what is running. Writing the configs is not enough: waybar, kitty and +# Hyprland reread on a signal, dunst and conky only on a restart, and rofi +# reads its theme per launch so it needs nothing. Each is guarded, because none +# of them is necessarily running, and a missing one is not an error. +reloaded="" +pgrep -x waybar >/dev/null 2>&1 && killall -SIGUSR2 waybar 2>/dev/null && reloaded="$reloaded waybar" +pgrep -x kitty >/dev/null 2>&1 && pkill -USR1 -x kitty 2>/dev/null && reloaded="$reloaded kitty" +command -v hyprctl >/dev/null 2>&1 && hyprctl reload >/dev/null 2>&1 && reloaded="$reloaded hyprland" + +# udt-accent regenerates the accent and restarts dunst itself. It needs a +# wallpaper to read; without one the accent keeps its current value. +if command -v udt-accent >/dev/null 2>&1 && [ -e "$HOME/.cache/wal/wpaper" ]; then + udt-accent "$HOME/.cache/wal/wpaper" >/dev/null 2>&1 && reloaded="$reloaded accent+dunst" +fi + +# conky has no hot-reload and nothing respawns it, so it is restarted only if +# it was already running. +if pgrep -x conky >/dev/null 2>&1; then + pkill -x conky 2>/dev/null + sleep 0.5 + (conky -d >/dev/null 2>&1 &) + reloaded="$reloaded conky" +fi + +[ -n "$reloaded" ] && echo "reloaded:$reloaded" + echo "installed:" ls -l "$target" "$HOME/bin/udt-accent" diff --git a/templates/conky.conf b/templates/conky.conf index a87b088..739cc41 100644 --- a/templates/conky.conf +++ b/templates/conky.conf @@ -5,17 +5,17 @@ conky.config={ mpd_host = '172.16.34.5', mpd_port = 6600, background=true, - color1='#7aa2f7', - color2='#a9b1d6', - color3='#3b4261', - color4='#7dcfff', - color5='#bb9af7', - color6='#9ece6a', + color1='#88c0d0', + color2='#d8dee9', + color3='#4c566a', + color4='#8fbcbb', + color5='#b48ead', + color6='#a3be8c', pad_percents=0, cpu_avg_samples=4, - default_color='#c0caf5', - default_outline_color='#3b4261', - default_shade_color='#16161e', + default_color='#eceff4', + default_outline_color='#4c566a', + default_shade_color='#3b4252', default_bar_height=10, default_bar_width=500, double_buffer=true, diff --git a/templates/dunstrc b/templates/dunstrc index aa6536f..de34cb1 100644 --- a/templates/dunstrc +++ b/templates/dunstrc @@ -59,17 +59,17 @@ [experimental] per_monitor_dpi = false [urgency_low] - background = "#16161e" - foreground = "#a9b1d6" - frame_color = "#3b4261" + background = "#3b4252" + foreground = "#d8dee9" + frame_color = "#4c566a" timeout = 10 [urgency_normal] - background = "#1a1b26" - foreground = "#c0caf5" + background = "#2e3440" + foreground = "#d8dee9" frame_color = "@ACCENT@" timeout = 10 [urgency_critical] - background = "#1a1b26" - foreground = "#c0caf5" - frame_color = "#f7768e" + background = "#2e3440" + foreground = "#d8dee9" + frame_color = "#bf616a" timeout = 0 diff --git a/templates/homepage/custom.css b/templates/homepage/custom.css index 5256358..e2b7027 100644 --- a/templates/homepage/custom.css +++ b/templates/homepage/custom.css @@ -1,42 +1,42 @@ -/* Generated by udt-palette from palette/tokyo-night.conf. Do not edit. +/* Generated by udt-palette from palette/nord.conf. Do not edit. * - * Catppuccin-independent: every colour here comes from palette/roles-tokyo-night + * Catppuccin-independent: every colour here comes from palette/roles-nord * .conf, so this file follows the desktop rather than restating a palette. */ .theme-gray { - --color-50: 192 202 245; - --color-100: 169 177 214; - --color-200: 169 177 214; - --color-300: 86 95 137; - --color-400: 65 72 104; - --color-500: 86 95 137; - --color-600: 40 52 87; - --color-700: 40 52 87; - --color-800: 41 46 66; - --color-900: 26 27 38; + --color-50: 216 222 233; + --color-100: 229 233 240; + --color-200: 216 222 233; + --color-300: 216 222 233; + --color-400: 76 86 106; + --color-500: 76 86 106; + --color-600: 67 76 94; + --color-700: 67 76 94; + --color-800: 59 66 82; + --color-900: 46 52 64; - --color-logo-start: 122 162 247; - --color-logo-stop: 125 207 255; + --color-logo-start: 136 192 208; + --color-logo-stop: 143 188 187; } /* Card backgrounds, which the ramp does not reach. See the note above. */ .theme-gray .bg-theme-100\/20:not([class^="backdrop-blur"]), .theme-gray .dark\:bg-white\/5:not([class^="backdrop-blur"]) { - background-color: rgb(41 46 66 / 55%); + background-color: rgb(59 66 82 / 55%); } .theme-gray .bg-theme-100\/20:hover:not([class^="backdrop-blur"]), .theme-gray .dark\:bg-white\/5:hover:not([class^="backdrop-blur"]) { - background-color: rgb(40 52 87 / 70%); + background-color: rgb(67 76 94 / 70%); } .theme-gray .bg-theme-900\/50:not([class^="backdrop-blur"]) { - background-color: rgb(26 27 38 / 50%); + background-color: rgb(46 52 64 / 50%); } /* Accent on secondary labels. Fixed, not wallpaper-tracking: this runs on a * server with no wallpaper to read. */ .theme-gray .text-theme-500 { - color: #7aa2f7; + color: #88c0d0; } |
