diff options
author | Atemu <atemu.main@gmail.com> | 2024-05-24 20:17:35 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-24 20:17:35 +0200 |
commit | 061a135d0522211c00ab225df1ca17f4b94b1668 (patch) | |
tree | 82dc4e8543fb5ec5f353fd1c3cb8926ee57a6678 /nixos | |
parent | c77a089983f5dbb950d7ab7545a2a183a808f85d (diff) | |
parent | fcaec6bdf72d92645313340c44ccfddf6cdea0e6 (diff) |
Merge pull request #309585 from diniamo/global-steam-compat-paths-var
nixos/steam: add protontricks submodule
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/programs/steam.nix | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/nixos/modules/programs/steam.nix b/nixos/modules/programs/steam.nix index d76863aff83be..31577ac2de454 100644 --- a/nixos/modules/programs/steam.nix +++ b/nixos/modules/programs/steam.nix @@ -4,6 +4,8 @@ let cfg = config.programs.steam; gamescopeCfg = config.programs.gamescope; + extraCompatPaths = lib.makeSearchPathOutput "steamcompattool" "" cfg.extraCompatPackages; + steam-gamescope = let exports = builtins.attrValues (builtins.mapAttrs (n: v: "export ${n}=${v}") cfg.gamescopeSession.env); in @@ -42,7 +44,7 @@ in { ''; apply = steam: steam.override (prev: { extraEnv = (lib.optionalAttrs (cfg.extraCompatPackages != [ ]) { - STEAM_EXTRA_COMPAT_TOOLS_PATHS = lib.makeSearchPathOutput "steamcompattool" "" cfg.extraCompatPackages; + STEAM_EXTRA_COMPAT_TOOLS_PATHS = extraCompatPaths; }) // (lib.optionalAttrs cfg.extest.enable { LD_PRELOAD = "${pkgs.pkgsi686Linux.extest}/lib/libextest.so"; }) // (prev.extraEnv or {}); @@ -139,6 +141,11 @@ in { Load the extest library into Steam, to translate X11 input events to uinput events (e.g. for using Steam Input on Wayland) ''; + + protontricks = { + enable = lib.mkEnableOption "protontricks, a simple wrapper for running Winetricks commands for Proton-enabled games"; + package = lib.mkPackageOption pkgs "protontricks" { }; + }; }; config = lib.mkIf cfg.enable { @@ -169,7 +176,8 @@ in { environment.systemPackages = [ cfg.package cfg.package.run - ] ++ lib.optional cfg.gamescopeSession.enable steam-gamescope; + ] ++ lib.optional cfg.gamescopeSession.enable steam-gamescope + ++ lib.optional cfg.protontricks.enable (cfg.protontricks.package.override { inherit extraCompatPaths; }); networking.firewall = lib.mkMerge [ (lib.mkIf (cfg.remotePlay.openFirewall || cfg.localNetworkGameTransfers.openFirewall) { |