diff --git a/systems/rhapsody-in-green/default.nix b/systems/rhapsody-in-green/default.nix index 699ff8e..5afc326 100644 --- a/systems/rhapsody-in-green/default.nix +++ b/systems/rhapsody-in-green/default.nix @@ -14,6 +14,7 @@ ./llms.nix ./open_webui.nix ./qmk.nix + ./sunshine.nix ./syncthing.nix inputs.nixos-hardware.nixosModules.framework-13-7040-amd ]; diff --git a/systems/rhapsody-in-green/edid/virtual-display.bin b/systems/rhapsody-in-green/edid/virtual-display.bin new file mode 100644 index 0000000..ef63be7 Binary files /dev/null and b/systems/rhapsody-in-green/edid/virtual-display.bin differ diff --git a/systems/rhapsody-in-green/sunshine.nix b/systems/rhapsody-in-green/sunshine.nix new file mode 100644 index 0000000..a553433 --- /dev/null +++ b/systems/rhapsody-in-green/sunshine.nix @@ -0,0 +1,28 @@ +{ pkgs, ... }: +{ + services.sunshine = { + enable = true; + openFirewall = true; + capSysAdmin = true; + }; + environment.systemPackages = [ pkgs.kdePackages.libkscreen ]; + + boot = { + kernelParams = [ + "drm.edid_firmware=DP-4:edid/virtual-display.bin" + "video=DP-4:e" + ]; + }; + + hardware.firmware = [ + (pkgs.runCommandLocal "virtual-display-edid" + { + compressFirmware = false; + } + '' + mkdir -p $out/lib/firmware/edid + cp ${./edid/virtual-display.bin} $out/lib/firmware/edid/virtual-display.bin + '' + ) + ]; +}