aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-11 18:42:05 +0200
committerDanilo M. <danix@danix.xyz>2026-09-11 18:42:05 +0200
commita77f24d657a6091022754adb1b30750748132216 (patch)
treec3d898c6f29e06dd99893005bd4654941f58d1d3
parentb7a660d5587b7d23dbcfbb39d14de22eb9600754 (diff)
downloadunified-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.md3
-rw-r--r--README.md6
-rwxr-xr-xinstall.sh26
-rw-r--r--templates/conky.conf18
-rw-r--r--templates/dunstrc16
-rw-r--r--templates/homepage/custom.css36
6 files changed, 69 insertions, 36 deletions
diff --git a/AGENTS.md b/AGENTS.md
index 49f0802..4632623 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -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 |
diff --git a/README.md b/README.md
index 4eb59ba..c949047 100644
--- a/README.md
+++ b/README.md
@@ -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.
diff --git a/install.sh b/install.sh
index 5969c48..6bc0341 100755
--- a/install.sh
+++ b/install.sh
@@ -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;
}