From 095f1d063a91f3e9edae6a5860f34eb95ff7a933 Mon Sep 17 00:00:00 2001 From: Nikolaos Karaolidis Date: Sat, 26 Jul 2025 15:29:16 +0100 Subject: [PATCH] Add proton-launch Signed-off-by: Nikolaos Karaolidis --- .../configs/user/gui/gaming/proton/default.nix | 17 +++++++++++++++++ .../user/gui/gaming/proton/proton-launch.sh | 15 +++++++++++++++ hosts/himalia/users/nick/default.nix | 1 + 3 files changed, 33 insertions(+) create mode 100644 hosts/common/configs/user/gui/gaming/proton/default.nix create mode 100644 hosts/common/configs/user/gui/gaming/proton/proton-launch.sh diff --git a/hosts/common/configs/user/gui/gaming/proton/default.nix b/hosts/common/configs/user/gui/gaming/proton/default.nix new file mode 100644 index 0000000..93c3ccd --- /dev/null +++ b/hosts/common/configs/user/gui/gaming/proton/default.nix @@ -0,0 +1,17 @@ +{ user, home }: +{ lib, pkgs, ... }: +{ + environment.persistence."/persist/state"."${home}/.local/share/proton" = { }; + + home-manager.users.${user}.home.packages = [ + (pkgs.writeShellApplication { + name = "proton-launch"; + runtimeInputs = with pkgs; [ coreutils ]; + runtimeEnv = { + PROTON = lib.makeSearchPathOutput "steamcompattool" "" [ pkgs.proton-ge-bin ]; + STEAM_RUN = lib.meta.getExe pkgs.steam-run; + }; + text = builtins.readFile ./proton-launch.sh; + }) + ]; +} diff --git a/hosts/common/configs/user/gui/gaming/proton/proton-launch.sh b/hosts/common/configs/user/gui/gaming/proton/proton-launch.sh new file mode 100644 index 0000000..3779ddc --- /dev/null +++ b/hosts/common/configs/user/gui/gaming/proton/proton-launch.sh @@ -0,0 +1,15 @@ +if [ "$#" -lt 1 ]; then + echo "Usage: $0 [args...]" + exit 1 +fi + +PROTON_DATA="$HOME/.local/share/proton" + +exec="$(realpath "$1")" +name="$(basename "$exec")" +mkdir -p "$PROTON_DATA/$name" + +export STEAM_COMPAT_DATA_PATH="$PROTON_DATA/$name" +export STEAM_COMPAT_CLIENT_INSTALL_PATH="$PROTON" + +"$STEAM_RUN" "$PROTON/proton" run "$exec" "${@:2}" >/dev/null 2>&1 & disown diff --git a/hosts/himalia/users/nick/default.nix b/hosts/himalia/users/nick/default.nix index 34573a7..0a4076a 100644 --- a/hosts/himalia/users/nick/default.nix +++ b/hosts/himalia/users/nick/default.nix @@ -66,6 +66,7 @@ in (import ../../../common/configs/user/gui/gaming/gamescope { inherit user home; }) (import ../../../common/configs/user/gui/gaming/steam { inherit user home; }) (import ../../../common/configs/user/gui/gaming/prismlauncher { inherit user home; }) + (import ../../../common/configs/user/gui/gaming/proton { inherit user home; }) (import ../../../common/configs/user/gui/gaming/wivrn { inherit user home; }) (import ../../../common/configs/user/gui/gtk { inherit user home; }) (import ../../../common/configs/user/gui/hyprland { inherit user home; })