fix(sunshine): use Intel rendering and recover remote Niri sessions (#268)

- render Niri on the Intel iGPU while retaining NVIDIA-connected physical outputs
- encode Sunshine streams with Intel VAAPI and wait for a Niri output before startup
- load VKMS persistently for headless sessions and configure `Virtual-1` at 2560x1600@60
- let Moonlight request the stream bitrate instead of enforcing a 20 Mbps host cap
- remove unsupported Dynamic Boost and global NVIDIA session overrides
- grant Sunshine access to virtual input devices
- add a Nushell recovery helper that starts a temporary greetd/Niri session from SSH
- identify and safely replace normal, standalone, or previous transient Niri sessions
- launch the transient service in the background and verify greetd, Niri, and Sunshine before returning
- ignore local `.worktrees` directories and keep eval regression coverage focused on structural behavior
This commit is contained in:
ryan4yin | 二花
2026-09-01 03:40:48 -06:00
committed by GitHub
parent 6f40483462
commit 9db935bc87
13 changed files with 266 additions and 38 deletions
+11 -2
View File
@@ -14,8 +14,17 @@
# kvm virtualization support
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModprobeConfig = "options kvm_intel nested=1";
boot.kernelModules = [
"kvm-intel"
# Provide a connected DRM output when the NVIDIA-attached monitors are off.
# Niri exposes it as Virtual-1 for headless Sunshine sessions.
"vkms"
];
boot.extraModprobeConfig = ''
options kvm_intel nested=1
# Create Virtual-1 as soon as vkms loads, including during normal physical sessions.
options vkms create_default_dev=1
'';
boot.extraModulePackages = [ ];
# Intel Graphics