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
@@ -1,4 +1,10 @@
{ lib, pkgs, ... }:
{
config,
lib,
myvars,
pkgs,
...
}:
{
environment.systemPackages = with pkgs; [
moonlight-qt # moonlight client, for streaming games/desktop from a PC
@@ -39,4 +45,6 @@
wan_encryption_mode = 2;
};
};
users.users."${myvars.username}".extraGroups = lib.mkIf config.services.sunshine.enable [ "input" ];
}