From 96c1b1a504e49b04d9486cd0390f169982ce77e0 Mon Sep 17 00:00:00 2001 From: gwg313 Date: Mon, 20 Apr 2026 18:05:29 -0400 Subject: [PATCH] add steam --- modules/aspects/roles.nix | 1 + modules/features/desktop/steam.nix | 58 ++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 modules/features/desktop/steam.nix diff --git a/modules/aspects/roles.nix b/modules/aspects/roles.nix index 70bc506..1375c2f 100644 --- a/modules/aspects/roles.nix +++ b/modules/aspects/roles.nix @@ -58,6 +58,7 @@ "pass" "zk" "gui-programs" + "steam" ]; laptop.features = [ diff --git a/modules/features/desktop/steam.nix b/modules/features/desktop/steam.nix new file mode 100644 index 0000000..2365b39 --- /dev/null +++ b/modules/features/desktop/steam.nix @@ -0,0 +1,58 @@ +{ + ... +}: + +{ + config.dendritic.features.steam = { + nixosModules = [ + ( + { config, pkgs, ... }: + { + hardware.graphics.enable32Bit = true; + + programs.steam = { + enable = true; + remotePlay.openFirewall = true; + dedicatedServer.openFirewall = true; + + gamescopeSession = { + enable = true; + args = [ + "-F fsr" + "-f" + ]; + }; + + package = pkgs.steam.override { + extraPkgs = + pkgs: with pkgs; [ + xorg.libXcursor + xorg.libXi + xorg.libXinerama + xorg.libXScrnSaver + libpng + libpulseaudio + libvorbis + stdenv.cc.cc.lib + libkrb5 + keyutils + ]; + }; + }; + + environment.sessionVariables = { + # Proton GE flag for FSR + WINE_FULLSCREEN_FSR = "1"; + }; + + environment.systemPackages = with pkgs; [ + protonup-ng + steam-devices-udev-rules + scanmem + mangohud + ]; + } + ) + ]; + }; +}