diff --git a/hosts/default.nix b/hosts/default.nix index 6ba373a..d2d31ae 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -74,9 +74,9 @@ in { #"services/ollama.nix" "desktop/x11/nosleep.nix" - "programs/gamemode.nix" - "programs/gamescope.nix" - "programs/steam.nix" + # "programs/gamemode.nix" # TEMP: TODO + # "programs/gamescope.nix" # TEMP: TODO + # "programs/steam.nix" # TEMP: TODO "programs/RE" ]) diff --git a/hosts/nixdesk/default.nix b/hosts/nixdesk/default.nix index ceddb8b..5ad966a 100644 --- a/hosts/nixdesk/default.nix +++ b/hosts/nixdesk/default.nix @@ -2,6 +2,7 @@ imports = [ ./hardware.nix ./hibernate-boot.nix + ./testing.nix ]; networking.hostName = "nixdesk"; diff --git a/hosts/nixdesk/testing.nix b/hosts/nixdesk/testing.nix new file mode 100644 index 0000000..c17c066 --- /dev/null +++ b/hosts/nixdesk/testing.nix @@ -0,0 +1,11 @@ +{self, ...}: { + imports = [ + self.nixosModules.xun + ]; + xun.gaming = { + enable = true; + steam.enable = true; + gamescope.enable = true; + gamemode.enable = true; + }; +} diff --git a/modules/default.nix b/modules/default.nix index d402610..cbed782 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -1,5 +1,6 @@ { flake.nixosModules = { #name = import ./name; + xun = import ./xun; }; } diff --git a/modules/xun/default.nix b/modules/xun/default.nix new file mode 100644 index 0000000..5fd7ee3 --- /dev/null +++ b/modules/xun/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./gaming + ]; +} diff --git a/modules/xun/gaming/default.nix b/modules/xun/gaming/default.nix new file mode 100644 index 0000000..3e81497 --- /dev/null +++ b/modules/xun/gaming/default.nix @@ -0,0 +1,47 @@ +{ + pkgs, + config, + lib, + ... +}: let + cfg = config.xun.gaming; +in { + options.xun.gaming = { + enable = lib.mkEnableOption "gaming"; + steam.enable = lib.mkEnableOption "steam"; + gamemode.enable = lib.mkEnableOption "gamemode"; + gamescope.enable = lib.mkEnableOption "gamescope"; + }; + + config = lib.mkIf cfg.enable ({ + programs.gamescope = lib.mkIf cfg.gamescope.enable { + enable = true; + capSysNice = false; # doesnt work with steam & heroic + }; + programs.gamemode.enable = cfg.gamemode.enable; + } + // lib.mkIf cfg.steam.enable { + # TODO: protontricks & steamtinkerlaunch + programs.steam = { + enable = true; + remotePlay.openFirewall = true; + localNetworkGameTransfers.openFirewall = true; + extraCompatPackages = with pkgs; [ + proton-ge-bin + ]; + ## Fixes gamescope (NOTE: no clue what this means) + extraPackages = with pkgs; [ + xorg.libXcursor + xorg.libXi + xorg.libXinerama + xorg.libXScrnSaver + libpng + libpulseaudio + libvorbis + stdenv.cc.cc.lib + libkrb5 + keyutils + ]; + }; + }); +}