Commit dfe3220
Changed files (4)
modules/game/hoyo-games.nix
@@ -1,7 +1,5 @@
-{inputs, ...}: {
- flake.modules.nixos.game = {pkgs, ...}: {
- imports = [inputs.aagl-nix.nixosModules.default];
-
+{
+ flake.modules.nixos.game = _: {
networking.hosts = {
"0.0.0.0" = [
"osuspider.yuanshen.com"
@@ -34,97 +32,5 @@
"pc.crashsight.wetest.net"
];
};
-
- environment.systemPackages = let
- aagl-pkgs = inputs.aagl-nix.packages.${pkgs.stdenv.system};
- override = prev: {
- extraPkgs = pkgs: [pkgs.bubblewrap]; # Use bubblewrap sandbox to set hostname to `STEAMDECK` to bypass anti-cheat
- };
- aagl-override-attrs = final: prev: let
- # See https://github.com/an-anime-team/an-anime-game-launcher/issues/572#issuecomment-3476345318
- my_wrapper = pkgs.writeShellScriptBin prev.pname ''
- # --- Configuration ---
- ORIGINAL_WRAPPER="${prev.passthru.wrapper}/bin/${prev.passthru.wrapper.name}"
- STRACE_CMD="${pkgs.strace}/bin/strace -f -e trace=process -o /dev/null $ORIGINAL_WRAPPER "$@""
- ESCORT_DURATION=120
- GAME_PROCESS_NAME="YuanShen.exe"
- LAUNCHER_PROCESS_NAME="${prev.passthru.wrapper.name}"
- POLLING_INTERVAL=5 # Polling interval in seconds
-
- # --- Variables ---
- STRACE_PID=""
- KILLER_PID=""
-
- # --- Cleanup Function ---
- cleanup() {
- echo "[Fix Script] Exit signal received, cleaning up..."
- if [ ! -z "$KILLER_PID" ] && ps -p "$KILLER_PID" > /dev/null; then
- kill -9 "$KILLER_PID"
- fi
- if [ ! -z "$STRACE_PID" ] && ps -p "$STRACE_PID" > /dev/null; then
- kill -9 "$STRACE_PID"
- fi
- pkill -9 -f "$LAUNCHER_PROCESS_NAME"
- echo "[Fix Script] Cleanup complete."
- }
- trap cleanup EXIT SIGINT SIGTERM
-
- # 1. Start the escort and the launcher
- echo "[Fix Script] Escort enabled..."
- $STRACE_CMD &
- STRACE_PID=$!
- echo "[Fix Script] Escort process PID: $STRACE_PID"
-
- # 2. Main monitoring loop
- while true; do
- IS_GAME_RUNNING=false
- if pgrep -f "$GAME_PROCESS_NAME" > /dev/null; then
- IS_GAME_RUNNING=true
- fi
-
- IS_STRACE_RUNNING=false
- if [ ! -z "$STRACE_PID" ] && ps -p "$STRACE_PID" > /dev/null; then
- IS_STRACE_RUNNING=true
- fi
-
- if [ "$IS_STRACE_RUNNING" = false ] && [ "$IS_GAME_RUNNING" = false ]; then
- echo "[Fix Script] Neither Launcher nor Game is running. Exiting wrapper."
- break
- fi
-
- if [ "$IS_GAME_RUNNING" = true ]; then
- if [ -z "$KILLER_PID" ] && [ "$IS_STRACE_RUNNING" = true ]; then
- echo "[Fix Script] Game process detected! Starting $ESCORT_DURATION-second countown to kill strace..."
- (sleep $ESCORT_DURATION && echo "[Fix Script] Time up! Killing strace..." && kill -9 $STRACE_PID) &
- KILLER_PID=$!
- fi
- else
- if [ ! -z "$KILLER_PID" ]; then
- echo "[Fix Script] Game exited but Launcher is open. Revoking detach program..."
- if ps -p $KILLER_PID > /dev/null; then
- kill -9 $KILLER_PID
- fi
- KILLER_PID=""
- fi
- fi
-
- sleep $POLLING_INTERVAL
- done
- echo "[Fix Script] Finished."
- exit 0
- '';
- in {
- passthru = prev.passthru // {wrapper = my_wrapper;};
- paths = with prev.passthru; [icon desktopEntry my_wrapper];
- };
-
- anime-game-launcher = (aagl-pkgs.anime-game-launcher.override override).overrideAttrs aagl-override-attrs;
- honkers-railway-launcher = aagl-pkgs.honkers-railway-launcher.override override;
- sleepy-launcher = aagl-pkgs.sleepy-launcher.override override;
- in [
- anime-game-launcher
- honkers-railway-launcher
- sleepy-launcher
- ];
};
}
modules/game/lutris.nix
@@ -3,12 +3,24 @@
pkgs,
osConfig,
...
- }: {
+ }: let
+ proton-ge-bin_latest = pkgs.proton-ge-bin;
+ proton-ge-bin_10-18 = pkgs.proton-ge-bin.overrideAttrs rec {
+ version = "GE-Proton10-18";
+ src = pkgs.fetchzip {
+ url = "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/${version}/${version}.tar.gz";
+ hash = "sha256-s2xnoyRy4JI1weRJ+9wjZzBRpsH7HMbK9DbhdVDJKww=";
+ };
+ };
+ in {
programs.lutris = {
enable = true;
steamPackage = osConfig.programs.steam.package;
defaultWinePackage = pkgs.proton-ge-bin;
- protonPackages = [pkgs.proton-ge-bin];
+ protonPackages = [
+ proton-ge-bin_latest
+ proton-ge-bin_10-18
+ ];
winePackages = [
pkgs.wineWow64Packages.full
pkgs.wineWowPackages.stagingFull
@@ -18,6 +30,7 @@
gamescope
gamemode
mangohud
+ bubblewrap
];
};
};
flake.lock
@@ -1,27 +1,5 @@
{
"nodes": {
- "aagl-nix": {
- "inputs": {
- "flake-compat": "flake-compat",
- "nixpkgs": [
- "nixpkgs"
- ],
- "rust-overlay": "rust-overlay"
- },
- "locked": {
- "lastModified": 1767520119,
- "narHash": "sha256-+OmNQLA9Fv5WBaxYHlPghS9XmnYWDaLt+AatCGhG+hc=",
- "owner": "ezKEa",
- "repo": "aagl-gtk-on-nix",
- "rev": "5720d3282844b6b23b26dfac075a5f1f58ea8844",
- "type": "github"
- },
- "original": {
- "owner": "ezKEa",
- "repo": "aagl-gtk-on-nix",
- "type": "github"
- }
- },
"base16": {
"inputs": {
"fromYaml": "fromYaml"
@@ -107,8 +85,8 @@
},
"deploy-rs": {
"inputs": {
- "flake-compat": "flake-compat_2",
- "nixpkgs": "nixpkgs_2",
+ "flake-compat": "flake-compat",
+ "nixpkgs": "nixpkgs",
"utils": "utils"
},
"locked": {
@@ -127,7 +105,7 @@
},
"disko": {
"inputs": {
- "nixpkgs": "nixpkgs_3"
+ "nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1736864502,
@@ -147,7 +125,7 @@
"distro-grub-themes": {
"inputs": {
"flake-utils": "flake-utils",
- "nixpkgs": "nixpkgs_4"
+ "nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1734806114,
@@ -180,22 +158,6 @@
}
},
"flake-compat": {
- "flake": false,
- "locked": {
- "lastModified": 1761588595,
- "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
- "owner": "edolstra",
- "repo": "flake-compat",
- "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
- "type": "github"
- },
- "original": {
- "owner": "edolstra",
- "repo": "flake-compat",
- "type": "github"
- }
- },
- "flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1733328505,
@@ -211,7 +173,7 @@
"type": "github"
}
},
- "flake-compat_3": {
+ "flake-compat_2": {
"locked": {
"lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
@@ -225,7 +187,7 @@
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
}
},
- "flake-compat_4": {
+ "flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1747046372,
@@ -491,7 +453,7 @@
"inputs": {
"niri-stable": "niri-stable",
"niri-unstable": "niri-unstable",
- "nixpkgs": "nixpkgs_5",
+ "nixpkgs": "nixpkgs_4",
"nixpkgs-stable": "nixpkgs-stable",
"xwayland-satellite-stable": "xwayland-satellite-stable",
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
@@ -566,9 +528,9 @@
},
"nixcord": {
"inputs": {
- "flake-compat": "flake-compat_3",
+ "flake-compat": "flake-compat_2",
"flake-parts": "flake-parts_3",
- "nixpkgs": "nixpkgs_6"
+ "nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1768610265,
@@ -619,11 +581,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1744536153,
- "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
+ "lastModified": 1743014863,
+ "narHash": "sha256-jAIUqsiN2r3hCuHji80U7NNEafpIMBXiwKlSrjWMlpg=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
+ "rev": "bd3bac8bfb542dbde7ffffb6987a1a1f9d41699f",
"type": "github"
},
"original": {
@@ -710,22 +672,6 @@
}
},
"nixpkgs_10": {
- "locked": {
- "lastModified": 1765779637,
- "narHash": "sha256-KJ2wa/BLSrTqDjbfyNx70ov/HdgNBCBBSQP3BIzKnv4=",
- "owner": "nixos",
- "repo": "nixpkgs",
- "rev": "1306659b587dc277866c7b69eb97e5f07864d8c4",
- "type": "github"
- },
- "original": {
- "owner": "nixos",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_11": {
"locked": {
"lastModified": 1762111121,
"narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=",
@@ -742,22 +688,6 @@
}
},
"nixpkgs_2": {
- "locked": {
- "lastModified": 1743014863,
- "narHash": "sha256-jAIUqsiN2r3hCuHji80U7NNEafpIMBXiwKlSrjWMlpg=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "bd3bac8bfb542dbde7ffffb6987a1a1f9d41699f",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixpkgs-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_3": {
"locked": {
"lastModified": 1736241350,
"narHash": "sha256-CHd7yhaDigUuJyDeX0SADbTM9FXfiWaeNyY34FL1wQU=",
@@ -773,7 +703,7 @@
"type": "github"
}
},
- "nixpkgs_4": {
+ "nixpkgs_3": {
"locked": {
"lastModified": 1731676054,
"narHash": "sha256-OZiZ3m8SCMfh3B6bfGC/Bm4x3qc1m2SVEAlkV6iY7Yg=",
@@ -789,7 +719,7 @@
"type": "github"
}
},
- "nixpkgs_5": {
+ "nixpkgs_4": {
"locked": {
"lastModified": 1768564909,
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
@@ -805,7 +735,7 @@
"type": "github"
}
},
- "nixpkgs_6": {
+ "nixpkgs_5": {
"locked": {
"lastModified": 1766885793,
"narHash": "sha256-P6RVkrM9JLCW6xBjSwHfgTOQ1JwBUma5xe5LI8xAPC0=",
@@ -821,7 +751,7 @@
"type": "github"
}
},
- "nixpkgs_7": {
+ "nixpkgs_6": {
"locked": {
"lastModified": 1768564909,
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
@@ -837,7 +767,7 @@
"type": "github"
}
},
- "nixpkgs_8": {
+ "nixpkgs_7": {
"locked": {
"lastModified": 1767767207,
"narHash": "sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4=",
@@ -853,7 +783,7 @@
"type": "github"
}
},
- "nixpkgs_9": {
+ "nixpkgs_8": {
"locked": {
"lastModified": 1768564909,
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
@@ -869,9 +799,25 @@
"type": "github"
}
},
+ "nixpkgs_9": {
+ "locked": {
+ "lastModified": 1765779637,
+ "narHash": "sha256-KJ2wa/BLSrTqDjbfyNx70ov/HdgNBCBBSQP3BIzKnv4=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "1306659b587dc277866c7b69eb97e5f07864d8c4",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
"noctalia": {
"inputs": {
- "nixpkgs": "nixpkgs_8"
+ "nixpkgs": "nixpkgs_7"
},
"locked": {
"lastModified": 1768078785,
@@ -891,7 +837,7 @@
"nur": {
"inputs": {
"flake-parts": "flake-parts_4",
- "nixpkgs": "nixpkgs_9"
+ "nixpkgs": "nixpkgs_8"
},
"locked": {
"lastModified": 1768623276,
@@ -977,7 +923,7 @@
},
"pre-commit-hooks": {
"inputs": {
- "flake-compat": "flake-compat_4",
+ "flake-compat": "flake-compat_3",
"gitignore": "gitignore",
"nixpkgs": [
"vaultix",
@@ -1021,7 +967,6 @@
},
"root": {
"inputs": {
- "aagl-nix": "aagl-nix",
"deploy-rs": "deploy-rs",
"disko": "disko",
"distro-grub-themes": "distro-grub-themes",
@@ -1033,7 +978,7 @@
"nixcord": "nixcord",
"nixos-hardware": "nixos-hardware",
"nixos-logo": "nixos-logo",
- "nixpkgs": "nixpkgs_7",
+ "nixpkgs": "nixpkgs_6",
"noctalia": "noctalia",
"nur": "nur",
"nur-hpcesia": "nur-hpcesia",
@@ -1047,24 +992,6 @@
}
},
"rust-overlay": {
- "inputs": {
- "nixpkgs": "nixpkgs"
- },
- "locked": {
- "lastModified": 1764470739,
- "narHash": "sha256-sa9f81B1dWO16QtgDTWHX8DQbiHKzHndpaunY5EQtwE=",
- "owner": "oxalica",
- "repo": "rust-overlay",
- "rev": "3bfa664055e1a09c6aedab5533c5fc8d6ca5741a",
- "type": "github"
- },
- "original": {
- "owner": "oxalica",
- "repo": "rust-overlay",
- "type": "github"
- }
- },
- "rust-overlay_2": {
"inputs": {
"nixpkgs": [
"vaultix",
@@ -1085,7 +1012,7 @@
"type": "github"
}
},
- "rust-overlay_3": {
+ "rust-overlay_2": {
"inputs": {
"nixpkgs": [
"wakatime-ls",
@@ -1108,7 +1035,7 @@
},
"silentSDDM": {
"inputs": {
- "nixpkgs": "nixpkgs_10"
+ "nixpkgs": "nixpkgs_9"
},
"locked": {
"lastModified": 1767456956,
@@ -1339,9 +1266,9 @@
"inputs": {
"crane": "crane",
"flake-parts": "flake-parts_6",
- "nixpkgs": "nixpkgs_11",
+ "nixpkgs": "nixpkgs_10",
"pre-commit-hooks": "pre-commit-hooks",
- "rust-overlay": "rust-overlay_2"
+ "rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1765367686,
@@ -1363,7 +1290,7 @@
"nixpkgs": [
"nixpkgs"
],
- "rust-overlay": "rust-overlay_3"
+ "rust-overlay": "rust-overlay_2"
},
"locked": {
"lastModified": 1764772399,
flake.nix
@@ -2,9 +2,6 @@
description = "NixOS configuration of HPCesia.";
inputs = {
- aagl-nix.url = "github:ezKEa/aagl-gtk-on-nix";
- aagl-nix.inputs.nixpkgs.follows = "nixpkgs";
-
deploy-rs.url = "github:serokell/deploy-rs";
disko.url = "github:nix-community/disko/v1.11.0";