main
 1{lib, ...}: {
 2  den.aspects.game.heroic = {
 3    cacheHome = {config, ...}: {
 4      directories = [
 5        "${config.xdg.configHome}/heroic"
 6        "${config.xdg.stateHome}/Heroic"
 7      ];
 8    };
 9
10    homeManager = {
11      osConfig,
12      pkgs,
13      ...
14    }: {
15      home.packages = with pkgs; [
16        heroic
17      ];
18
19      xdg.configFile = lib.mergeAttrsList (
20        map
21        (w: {"heroic/tools/proton/${w.pname}".source = w.steamcompattool;})
22        osConfig.programs.steam.extraCompatPackages
23      );
24    };
25  };
26
27  den.aspects.game.heroic.themes = {
28    catppuccin = {
29      homeManager = {pkgs, ...}: {
30        xdg.configFile."heroic/themes".source = "${pkgs.fetchFromGitHub {
31          owner = "catppuccin";
32          repo = "heroic";
33          rev = "1248e2d24721aa1cc54f185b1b851826207a2b46";
34          hash = "sha256-JcLvp/7F+lmU8FVkrMvgtnu087XLS1T3/3X6OrA/yOg=";
35        }}/themes";
36      };
37    };
38  };
39}