diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-11 18:48:06 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-11 18:48:06 +0200 |
| commit | d72b4bd6a39236093eed24d8b20f8e4d455c1fd3 (patch) | |
| tree | faba13bc1fc8c9bbde05b003abe1ceab5b84ec11 /appearance | |
| parent | 1b252e32d93e1e0207d2a69ee3445e1dbf6505ae (diff) | |
| download | quickshell-d72b4bd6a39236093eed24d8b20f8e4d455c1fd3.tar.gz quickshell-d72b4bd6a39236093eed24d8b20f8e4d455c1fd3.zip | |
fix(appearance): rescan schemes and wallpapers on open
Both scans ran once at startup. This shell is autostarted, so that is
once per session: a scheme or a wallpaper added afterwards never
appeared, and restarting the shell was the only way to see it. Six
schemes added during a session were invisible for exactly this reason.
Opening the panel now refreshes both. Verified by adding a palette pair
to a running shell and watching it appear, with its colours resolved,
after the refresh.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G7NRsGyF9jGfPYS4zPqpN7
Diffstat (limited to 'appearance')
| -rw-r--r-- | appearance/AppearancePanel.qml | 4 | ||||
| -rw-r--r-- | appearance/README.md | 3 | ||||
| -rw-r--r-- | appearance/Udt.qml | 8 | ||||
| -rw-r--r-- | appearance/Wallpapers.qml | 7 |
4 files changed, 22 insertions, 0 deletions
diff --git a/appearance/AppearancePanel.qml b/appearance/AppearancePanel.qml index 27a0196..708682c 100644 --- a/appearance/AppearancePanel.qml +++ b/appearance/AppearancePanel.qml @@ -31,6 +31,10 @@ Scope { function show(which) { if (which) root.tab = which; root.notice = ""; + // Schemes and wallpapers can both have changed since this shell + // started, which for an autostarted one is the whole session. + Udt.refresh(); + Wallpapers.refresh(); root.open = true; } function close() { root.open = false; } diff --git a/appearance/README.md b/appearance/README.md index f0e9a09..aba231a 100644 --- a/appearance/README.md +++ b/appearance/README.md @@ -62,6 +62,9 @@ are. The list comes from the palette directory rather than a hardcoded set, so adding a scheme to unified-desktop-theme is enough to make it appear here. +Both the scheme list and the wallpaper scan are redone every time the panel +opens: this shell is autostarted and runs all session, so a scan done only at +startup would go stale the first time anything was added. Applying writes the `scheme =` line in `~/.config/udt/roles.conf` and runs `install.sh`, which regenerates every themed config. **It reloads nothing**, diff --git a/appearance/Udt.qml b/appearance/Udt.qml index 30ae285..81e6427 100644 --- a/appearance/Udt.qml +++ b/appearance/Udt.qml @@ -71,6 +71,14 @@ Singleton { // The scheme list comes from the palette directory rather than the comment // in roles.conf: adding a scheme is adding two files, and this then needs // no edit at all. + // Rescanned whenever the panel opens: adding a scheme is adding two + // files, and a shell that has been running since before they appeared + // would otherwise keep showing the old list. + function refresh() { + listProc.running = false; + listProc.running = true; + } + Process { id: listProc running: true diff --git a/appearance/Wallpapers.qml b/appearance/Wallpapers.qml index 0d61f90..0317ea5 100644 --- a/appearance/Wallpapers.qml +++ b/appearance/Wallpapers.qml @@ -55,7 +55,14 @@ Singleton { // Sorted by most recent first: the wallpaper wanted now is usually one // added recently. -maxdepth keeps a stray git checkout from being walked. + function refresh() { + scanning = true; + scanProc.running = false; + scanProc.running = true; + } + Process { + id: scanProc running: true command: ["sh", "-c", `find ${JSON.stringify(root.dir)} -maxdepth 2 -type f ` + |
