You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ryovm starts Ghostty with kitty's --class syntax, which Ghostty rejects #280
Ryoku starts the terminal for ryovm/ryoport with exec "${TERMINAL:-kitty}" --class <name> -e .... --class NAME with a space is kitty's form. Ghostty wants --class=NAME. With
Ghostty set as the terminal, every ryovm action opens Ghostty's config error
window and the class is never applied.
The flag form. Given --class NAME, Ghostty treats --class as a flag with no
value and reports "class: value required", then parses NAME as another config
field and reports "invalid field". That is what the window is showing.
The names. Ghostty validates class as a GTK app id, and those cannot contain
hyphens. ryoport-ssh, ryovm-ssh and ryoku-passkey are all rejected, so
even with the right flag form the window keeps com.mitchellh.ghostty.
Window rules
window_rules.lua matches on those class names:
hl.window_rule({ name = "float-ryoport-ssh", match = { class = "ryoport-ssh" }, float = true, size = fit(900, 560), center = true })
With Ghostty the class never lands, so these windows are not floated or centred.
The rule cannot match. The dialog also has to be dismissed each time.
The terminal is configurable, so the flag should be built for whichever one is
set instead of assuming kitty. Both parts above need handling: the flag form, and
names GTK will accept together with the matching window rules.
Ghostty and kitty are both installed here if a patch needs testing.
Opened #281 with the flag form fixed on the five ${TERMINAL} launches. That removes the error window. The two items under "What this does not fix" in the PR (Ghostty missing from the terminalArgv switch in ryossh.go, and the hyphenated class names being invalid as GTK app ids) are still open, so this issue can stay up until those are decided.
Thanks for the thorough writeup, both causes are sorted on unstable-dev: the launches now pass --class=NAME and the names are GTK-valid application ids (dev.ryoku.*), so Ghostty applies the class and the float rule matches again. ryossh's terminal switch also gained the Ghostty branch. Ships with the next release of main.
Activity
[-]Machine page (GPU/MUX) raises Hyprland config errors: cli1:class: value required / cli2:ryovm: invalid field[/-][+]ryovm starts Ghostty with kitty's --class syntax, which Ghostty rejects[/+]lothesito commentedon Sep 27, 2026
Opened #281 with the flag form fixed on the five
${TERMINAL}launches. That removes the error window. The two items under "What this does not fix" in the PR (Ghostty missing from theterminalArgvswitch inryossh.go, and the hyphenated class names being invalid as GTK app ids) are still open, so this issue can stay up until those are decided.[ryoku] apps,hub: use --class=NAME with a GTK-valid app id
[tooling] go unit tests: cover the ryoport ssh helper module
neur0map commentedon Sep 27, 2026
Thanks for the thorough writeup, both causes are sorted on unstable-dev: the launches now pass --class=NAME and the names are GTK-valid application ids (dev.ryoku.*), so Ghostty applies the class and the float rule matches again. ryossh's terminal switch also gained the Ghostty branch. Ships with the next release of main.