fix(desktop): use windowrule v3 syntax for the satty float rule (task 0028)

This commit was merged in pull request #20.
This commit is contained in:
2026-07-22 22:22:20 -04:00
parent 708a3ee963
commit 37ddf4342a
2 changed files with 8 additions and 1 deletions

View File

@@ -92,3 +92,8 @@ The domain model (Host, Module, Skeleton, Auto-loader, Enable convention, overla
The build/render check is therefore blind to it, and the real test is a running session (or reading `~/.config/hypr/hyprland.conf` against the running package's own names). The build/render check is therefore blind to it, and the real test is a running session (or reading `~/.config/hypr/hyprland.conf` against the running package's own names).
Two that bit on 0.55.4: the dwindle split actions `togglesplit`, `swapsplit`, and `pseudo` are layout messages reached through the `layoutmsg` dispatcher (`bind = $mod, T, layoutmsg, togglesplit`), not top-level dispatchers, and the old `dwindle:pseudotile` option is gone. Two that bit on 0.55.4: the dwindle split actions `togglesplit`, `swapsplit`, and `pseudo` are layout messages reached through the `layoutmsg` dispatcher (`bind = $mod, T, layoutmsg, togglesplit`), not top-level dispatchers, and the old `dwindle:pseudotile` option is gone.
Confirm names against the pinned package rather than the wiki, whose "latest" drifts from it. Confirm names against the pinned package rather than the wiki, whose "latest" drifts from it.
The config can in fact be checked offline: `Hyprland --verify-config -c <rendered-conf>` parses the file and prints `config ok` or the exact `line N:` error without a running compositor, so a rule change is provable before login rather than only at it.
- Hyprland 0.55.4 uses windowrule v3 syntax, which is not the `windowrule = float, class:^(re)$` form the wiki still shows.
A flat `windowrule =` entry is a comma-separated list of `field value` tokens, each of which **must** carry a value: matchers take a `match:` prefix and effects are bare, so floating one app is `windowrule = float 1, match:class ^(com\.gabm\.satty)$`.
The old form fails at load with `invalid field float: missing a value`, because the effect token has no value.
`windowrulev2` is removed and errors as deprecated.

View File

@@ -39,8 +39,10 @@ in
home-manager.users.${user} = { home-manager.users.${user} = {
# satty is a one-shot annotation surface, so float it rather than letting # satty is a one-shot annotation surface, so float it rather than letting
# it claim a tile in the layout. # it claim a tile in the layout.
# windowrule v3 syntax: space-separated field/value tokens, comma
# separated, with matchers under a match: prefix and effects bare.
wayland.windowManager.hyprland.settings.windowrule = [ wayland.windowManager.hyprland.settings.windowrule = [
"float, class:^(com\\.gabm\\.satty)$" "float 1, match:class ^(com\\.gabm\\.satty)$"
]; ];
# Print with plain/Shift/Ctrl for region/window/full. # Print with plain/Shift/Ctrl for region/window/full.