diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-19 09:49:17 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-19 09:49:17 +0200 |
| commit | 543b818b54126bc8b40302d5b12cd44b90b20ddd (patch) | |
| tree | 46d72ced089525f2a0eb762042d0e90b45d61a17 /docs/superpowers/specs/2026-10-19-notification-sounds-design.md | |
| parent | f056d5f7dc21a81538d3dc54290d176830aa20f6 (diff) | |
| download | quickshell-543b818b54126bc8b40302d5b12cd44b90b20ddd.tar.gz quickshell-543b818b54126bc8b40302d5b12cd44b90b20ddd.zip | |
docs: notification sound theme mirrors gsettings
Save sets the system sound theme too, and the page reads it back on every
open so a change made elsewhere shows instead of being overwritten.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'docs/superpowers/specs/2026-10-19-notification-sounds-design.md')
| -rw-r--r-- | docs/superpowers/specs/2026-10-19-notification-sounds-design.md | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/docs/superpowers/specs/2026-10-19-notification-sounds-design.md b/docs/superpowers/specs/2026-10-19-notification-sounds-design.md index 857ca4d..e64ed39 100644 --- a/docs/superpowers/specs/2026-10-19-notification-sounds-design.md +++ b/docs/superpowers/specs/2026-10-19-notification-sounds-design.md @@ -21,7 +21,7 @@ Two keys join `~/.config/notifyd/config.json`: - `soundTheme`: the freedesktop sound theme an app's `sound-name` hint is looked up in. A non-string or empty value reads as `freedesktop`. -`soundTheme` is the daemon's; `sounds` is the balloon shell's. Both are +`soundTheme` is read by the daemon and mirrored to gsettings by the page (see Settings page); `sounds` is the balloon shell's. Both are resolved in `shared/NotifyConfig.js` for the page; notifyd's `Config` gains `SoundTheme`. @@ -98,8 +98,23 @@ directory under `~/.local/share/sounds` and `/usr/share/sounds` that holds an `index.theme`, listed with `find` once when the page opens. The current `soundTheme` is highlighted. -Saving and reloading are unchanged: the same draft, file and `notifyctl -reload`. +The theme is the desktop's too. Save sets `soundTheme` in the file and +`gsettings set org.gnome.desktop.sound theme-name <theme>`, so libcanberra +and GTK event sounds use the same theme. notifyd still reads only the file: +no daemon dependency on gsettings. + +The page also reads gsettings, with `gsettings get` each time the module +refreshes (every settings window open) and after each save. When the system +theme differs from `soundTheme`, a yellow line under the chooser says so, +"System sound theme is <x>, changed outside this page", with a **Use <x>** +button that puts it in the draft. Nothing is changed silently in either +direction. A missing `gsettings` or schema reads as no system theme and the +line stays hidden. + +Saving otherwise works as before: the same draft, the file write, then +`notifyctl reload`. The save runs the gsettings write between the two: a +failure there is reported ("saved; the system sound theme could not be +set") and does not stop the reload. ## Out of scope |
