diff options
author | diniamo <diniamo53@gmail.com> | 2024-05-07 14:59:35 +0200 |
---|---|---|
committer | diniamo <diniamo53@gmail.com> | 2024-05-24 08:51:37 +0200 |
commit | fcaec6bdf72d92645313340c44ccfddf6cdea0e6 (patch) | |
tree | eb6a2babea00a6a102c2cb43a6cbac27105fae60 | |
parent | 6d8bbfebfe71d49ec066538b183a992b3625612c (diff) |
nixos/steam: add protontricks submodule
-rw-r--r-- | nixos/modules/programs/steam.nix | 12 | ||||
-rw-r--r-- | pkgs/tools/package-management/protontricks/default.nix | 3 |
2 files changed, 12 insertions, 3 deletions
diff --git a/nixos/modules/programs/steam.nix b/nixos/modules/programs/steam.nix index d317398495f54..26faf40d5ce1d 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) { diff --git a/pkgs/tools/package-management/protontricks/default.nix b/pkgs/tools/package-management/protontricks/default.nix index c3c43163c6710..a3ba1f112fb85 100644 --- a/pkgs/tools/package-management/protontricks/default.nix +++ b/pkgs/tools/package-management/protontricks/default.nix @@ -12,6 +12,7 @@ , yad , pytestCheckHook , nix-update-script +, extraCompatPaths ? "" }: buildPythonApplication rec { @@ -51,7 +52,7 @@ buildPythonApplication rec { ]}" # Steam Runtime does not work outside of steam-run, so don't use it "--set STEAM_RUNTIME 0" - ]; + ] ++ lib.optional (extraCompatPaths != "") "--set STEAM_EXTRA_COMPAT_TOOLS_PATHS ${extraCompatPaths}"; nativeCheckInputs = [ pytestCheckHook ]; |