fix(steam): Impermanence + Steam

This commit is contained in:
Madeleine Sydney
2025-04-10 07:42:10 -06:00
parent 3600f56d92
commit 240bdfb6da
5 changed files with 28 additions and 5 deletions

View File

@@ -19,7 +19,7 @@ in {
#
# https://github.com/ValveSoftware/steam-for-linux/issues/10552
# https://github.com/nix-community/impermanence/issues/165
{ directory = ".local/share/Steam"; method = "symlink"; }
# { directory = ".local/share/Steam"; method = "symlink"; }
{ directory = ".steam"; method = "symlink"; }
];

View File

@@ -25,8 +25,9 @@ in {
./tf2/quake-hitsounds
];
};
game-dir = ".local/share/Steam/steamapps/common/Team Fortress 2/tf";
in {
home.file."tf" = {
home.file.${game-dir} = {
recursive = true;
source = my-config;
};

View File

@@ -4,6 +4,16 @@ let cfg = config.sydnix.steam;
in {
options.sydnix.steam = {
enable = lib.mkEnableOption "Steam";
impermanenceUsers = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [];
description = ''
A list of users for which ~/.local/share/Steam shall be persisted. This
is a disgusting hack to get around an issue with Impermanence's
home-manager module.
https://github.com/nix-community/impermanence/issues/165#issuecomment-2537723929
'';
};
};
config = lib.mkIf cfg.enable {
@@ -28,5 +38,14 @@ in {
enable = true;
enable32Bit = true;
};
environment.persistence.${config.sydnix.impermanence.persistDirectory}.users =
builtins.listToAttrs
(builtins.map
(user: {
name = user;
value.directories = [".local/share/Steam"];
})
cfg.impermanenceUsers);
};
}