diff --git a/hosts/common/user/configs/gui/gaming/default.nix b/hosts/common/user/configs/gui/gaming/default.nix new file mode 100644 index 0000000..8dc5f32 --- /dev/null +++ b/hosts/common/user/configs/gui/gaming/default.nix @@ -0,0 +1,37 @@ +{ + user ? throw "user argument is required", + home ? throw "home argument is required", +}: +{ pkgs, ... }: +{ + environment.persistence."/persist" = { + "${home}/.steam" = { }; + "${home}/.local/share/Steam" = { }; + }; + + programs = { + steam = { + enable = true; + localNetworkGameTransfers.openFirewall = true; + extest.enable = true; + protontricks.enable = true; + }; + + gamescope = { + enable = true; + args = [ + "--rt" + "-f" + ]; + }; + + gamemode.enable = true; + }; + + home-manager.users.${user} = { + home = { + packages = with pkgs; [ protonup ]; + sessionVariables.STEAM_EXTRA_COMPAT_TOOLS_PATHS = "${home}/.steam/root/compatibilitytools.d"; + }; + }; +} diff --git a/hosts/eirene/README.md b/hosts/eirene/README.md index 42f7fe7..689d669 100644 --- a/hosts/eirene/README.md +++ b/hosts/eirene/README.md @@ -11,4 +11,11 @@ ### Third-party Services - [ ] Firefox + - [ ] Authenticate + - [ ] Spotify + - [ ] Authenticate + +- [ ] Steam + - [ ] Authenticate + - [ ] `protonup` diff --git a/hosts/eirene/default.nix b/hosts/eirene/default.nix index c01b46e..85b0999 100644 --- a/hosts/eirene/default.nix +++ b/hosts/eirene/default.nix @@ -105,6 +105,25 @@ rocmSupport = true; }; + programs = { + steam.package = pkgs.steam.override { + extraEnv.STEAM_FORCE_DESKTOPUI_SCALING = 1.25; + }; + + gamescope = { + env = { + __NV_PRIME_RENDER_OFFLOAD = "1"; + __VK_LAYER_NV_optimus = "NVIDIA_only"; + __GLX_VENDOR_LIBRARY_NAME = "nvidia"; + }; + + args = [ + "-W 2560" + "-H 1600" + ]; + }; + }; + home-manager.sharedModules = [ { wayland.windowManager.hyprland.settings = { diff --git a/hosts/eirene/users/nick.nix b/hosts/eirene/users/nick.nix index 0f74e46..3c2a47e 100644 --- a/hosts/eirene/users/nick.nix +++ b/hosts/eirene/users/nick.nix @@ -40,6 +40,7 @@ in (import ../../common/user/configs/gui/cliphist { inherit user home; }) (import ../../common/user/configs/gui/emoji { inherit user home; }) (import ../../common/user/configs/gui/firefox { inherit user home; }) + (import ../../common/user/configs/gui/gaming { inherit user home; }) (import ../../common/user/configs/gui/gtk { inherit user home; }) (import ../../common/user/configs/gui/hyprland { inherit user home; }) (import ../../common/user/configs/gui/hyprshot { inherit user home; })