The stream rendered but ignored keyboard and mouse. Sunshine injects input through uinput exclusively — it has no support for the Wayland virtual keyboard/pointer protocols — so the compositor has to have a libinput backend to see those devices. WLR_BACKENDS=headless creates only the headless backend, so sway had zero input devices against the kernel's 24. libinput needs a seat, and a systemd --user service belongs to no logind session, so libseat needs seatd. seatd is now enabled on this host. Its socket defaults to group `seat`, which does not help here: the user manager's group list is fixed when it starts, Linger=yes means that is at boot, and so adding connor to `seat` would not take effect until a reboot — re-logging in changes nothing. The drop-in points seatd at `video`, a group connor already holds for GPU access, which makes this deterministic instead of dependent on group-propagation timing. sway now reports 7 input devices including libvirtualhid Mouse and Keyboard, which are Sunshine's. hosts/mainframe/etc/ is a new tree for system-level config; install flags it the same way it flags sbin.
12 lines
546 B
Plaintext
12 lines
546 B
Plaintext
# seatd's socket defaults to group `seat`. The compositor runs as a systemd
|
|
# --user service, and that manager's group list is fixed at the moment it
|
|
# starts — with Linger=yes it starts at boot, so adding connor to `seat` does
|
|
# not reach it until a reboot, and re-logging in changes nothing.
|
|
#
|
|
# `video` is a group connor already holds (it is required for GPU access
|
|
# anyway), so pointing seatd at it makes seat access deterministic rather than
|
|
# dependent on group-propagation timing.
|
|
[Service]
|
|
ExecStart=
|
|
ExecStart=/usr/bin/seatd -g video
|