Let a seat receive blocks as data its holder renders, placed where the machine has the hardware (hq ADR 0255)

A module adding a battery to the bar had to write i3status-rust's TOML, so a second
bar could not take its place. node-bar now receives a bar-neutral block: the
contributor says what it shows, the holder renders it with its own template, places
every bar and place once, and a contribution may name a capability the machine must
report. The block is offered: the power module runs on servers without a bar.
This commit is contained in:
jochen
2026-10-08 15:20:59 +02:00
parent a759ac65a5
commit b1acb3d9de
12 changed files with 744 additions and 17 deletions
+1 -1
View File
@@ -970,7 +970,7 @@ func (r Resolution) compose(with Rendering, owner map[string]string,
// seat that places them (novox/hq ADR 0203, ADR 0204). Gathered from every module on
// the node, as the jails are, and **last of every placeholder pass**: shell code is a
// shell's own syntax, full of `${…}` no pass above should ever be shown.
if err := contributionsInto(copied, m, r.Modules, thisMachine, with); err != nil {
if err := contributionsInto(copied, m, r.Modules, thisMachine, with, r.Capabilities); err != nil {
return nil, err
}
copied["id"] = m.Module + "." + fmt.Sprint(resource["id"])