feat(theme-sync): persistent switch notification so slow switches read as progress
The "Applying theme — rebuilding…" toast used the default timeout, so it vanished seconds into a multi-minute home-manager switch — leaving the user with no signal and the impression the selection failed. Now it's persistent (timeout 0) and all theme notifications share a synchronous tag, so swaync REPLACES it in place with "Theme applied ✓" (or a critical failure toast that persists) when the rebuild finishes. notify() grew persistent/urgency/summary params. Honest indeterminate feedback — HM exposes no percentage, so no fake progress bar. Verified: py_compile clean; the full apply→switch→notify path runs end to end (dummy NOMARCHY_REBUILD). The in-place replacement is visible only in a real swaync session. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
11
README.md
11
README.md
@@ -309,12 +309,11 @@ close · `SUPER+1..9` workspaces · `Print` region screenshot.
|
||||
screen, tuigreet/MOTD text, and the `distroId` question (it changes
|
||||
`DEFAULT_HOSTNAME` and upstream `isNixos` checks — needs a test pass;
|
||||
nixos-* CLI names stay regardless)
|
||||
- **Theme-switch feedback:** a switch runs `home-manager switch` (seconds
|
||||
to minutes), and today the only signal is the notify-send toast
|
||||
("Applying theme — rebuilding…"). Add a visible progress indicator so a
|
||||
slow switch never reads as a failed selection — e.g. a spinner/progress
|
||||
widget from `nomarchy-theme-sync` (it already brackets the rebuild) or a
|
||||
Waybar/swaync element while the switch runs.
|
||||
- **Theme-switch feedback:** ✓ the "rebuilding…" notification is now
|
||||
persistent (timeout 0) and replaced in place by "applied ✓" / failure
|
||||
via a synchronous tag, so a multi-minute switch never reads as a failed
|
||||
selection. (An honest indeterminate indicator — HM gives no % — a
|
||||
literal progress widget would be cosmetic; revisit only if wanted.)
|
||||
- **Icon themes:** add `icon` to `theme-state.json`, have Stylix/GTK and
|
||||
rofi (`show-icons`) consume it, and ensure the chosen icon theme is
|
||||
pulled into the closure per active theme (a dark/light pair, e.g.
|
||||
|
||||
Reference in New Issue
Block a user