feat(desktop): add screenshot capture (task 0028) #20

Merged
alexion merged 3 commits from task-0028-screenshot-capture into main 2026-07-22 22:26:02 -04:00
2 changed files with 8 additions and 1 deletions
Showing only changes of commit 37ddf4342a - Show all commits

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.