gitops d58c55355c Patch B: name the sockets what clients open, and accept dispatch
The sockets were created as `.socket` and `.socket2`. Hyprland's are
`.socket.sock` and `.socket2.sock`, and every real client hardcodes those
names: waybar's hyprland/* modules, hyprctl, eww, ags. None of them fall back
and none of them say much when they fail -- waybar reports "Couldn't connect
to ... (3)" once at startup and then disables the module, so the whole symptom
is a bar with a workspace widget that never appears. The IPC was correct and
unreachable, which is the worst of both.

With the names fixed the read side is reachable, but a workspace you can see
and cannot click is only half a bar. So: a `dispatch` verb, deliberately the
smallest one that makes the bar work. `dispatch workspace N` switches, and
everything else is refused.

That refusal is the point. This socket is the surface any process able to open
it can use to drive the compositor, so the parser rejects rather than guesses:
`dispatch exec` is not implemented and never will be here, `killactive` is
not implemented, and an unparsed request gets no answer rather than being
treated as something near it.

Which is how the test earned its keep. `dispatch workspace +1` means "one to
the right" in Hyprland, and it was coming through as absolute workspace 1 --
because `u32::from_str` accepts a leading `+`. On workspace 1 that looks like
it worked. The target is now checked for digits before it is parsed, so every
relative form is rejected instead of silently mistranslated.
2026-08-10 12:58:15 +07:00
2026-08-10 08:26:02 +07:00
2026-08-09 22:37:21 +07:00
2026-08-09 22:37:21 +07:00
2026-08-09 22:37:21 +07:00
S
Description
Fork of pop-os/cosmic-comp for HyprCosmic: Hyprland-idiom config and a session that installs beside stock COSMIC
GPL-3.0
715 KiB
Languages
Rust 97.1%
Fluent 2.1%
GLSL 0.5%
Makefile 0.1%
Nix 0.1%