dunst: leave the rofi package to the rofi module, which the merge gate requires
mesh/delivery superseded: a newer head of the same pull request
mesh/merge-gate pass: builds dunst → g14, shanks; no bus step; every machine composes with the change as it did without (4 of 4 compose)
mesh/repo-check pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)

Two modules on one machine may not declare the same package; the rofi module is assigned wherever
dunst is.
This commit is contained in:
jochen
2026-10-10 00:11:00 +02:00
parent 2a16d39a3d
commit f76396de6f
3 changed files with 8 additions and 10 deletions
+4 -3
View File
@@ -2,8 +2,9 @@
The notifier as a module (novox/hq ADR 0208, research 026/05).
- Installs `dunst`, `libnotify` for `notify-send`, the client every program and these tools use, and
`rofi`, the context menu its `dunstrc` calls.
- Installs `dunst`, and `libnotify` for `notify-send`, the client every program and these tools use.
The context menu its `dunstrc` calls is `rofi`, which the `rofi` module installs: two modules on one
machine may not declare the same package, so a machine dunst serves also has `rofi` assigned.
- Claims the mesh's `node-notifier` seat and serves its verbs `send` and `history`.
- Owns `~/.config/dunst/dunstrc` and the directory `~/.config/dunst/dunstrc.d/`. Another module's
rule is that module's own file in the directory (ADR 0208 §4). dunst reads the directory after
@@ -89,7 +90,7 @@ count. The file keeps only the settings that differ from dunst's defaults.
- **The context menu works.** It called `/usr/bin/dmenu`, installed on neither machine, and then
`dmenu`, the node-launcher's command in `~/.local/bin`, which dunst did not find on the laptop
(2026-10-10): it runs in the account's service manager, whose `PATH` does not hold that directory. It now calls `rofi -dmenu`, a
package this module installs.
system package the `rofi` module installs.
- **A tap chooses an answer.** The answers were on the middle click only, which the laptop's and the
workstation's touchpads cannot give (novox/hq issue 360).
- **The face is the interface one,** Inter (research 026/04), instead of a monospace Nerd font.
@@ -19,8 +19,10 @@ func TestItClaimsTheNotifierSeatServingSendAndHistory(t *testing.T) {
if !reflect.DeepEqual(m.Claims, []claim{{Name: "node-notifier", Scope: "node", Serves: []string{"send", "history"}}}) {
t.Fatalf("claims: %+v", m.Claims)
}
// rofi is the context menu the dunstrc calls by name (see TheFileIsTheDecidedOne).
if present, absent := m.packages(); !reflect.DeepEqual(present, []string{"dunst", "libnotify", "rofi"}) || absent != nil {
// rofi, the context menu the dunstrc calls by name, is the rofi module's package: two modules on one
// machine may not declare the same package, and the rofi module holds node-launcher on every
// machine dunst serves.
if present, absent := m.packages(); !reflect.DeepEqual(present, []string{"dunst", "libnotify"}) || absent != nil {
t.Fatalf("packages: %v, absent %v", present, absent)
}
}
-5
View File
@@ -45,11 +45,6 @@
"type": "package",
"package": "libnotify"
},
{
"id": "menu",
"type": "package",
"package": "rofi"
},
{
"id": "configuration-dir",
"type": "directory",