old
  1{den, ...}: {
  2  den.aspects.hpcesia = {
  3    includes =
  4      [
  5        den.batteries.host-aspects
  6        den.batteries.primary-user
  7      ]
  8      ++ (den.lib.policy.when
  9        ({host, ...}: host.hasAspect den.aspects.roles.develop)
 10        (with den.aspects; [
 11          develop.agents.opencode
 12          develop.editor.helix
 13          develop.editor.helix.lang.nix
 14          develop.jujutsu
 15          develop.wakatime
 16          develop.yazi
 17          develop.zellij
 18          develop.zoxide
 19
 20          {
 21            homeManager.programs.git.settings.url = {
 22              "ssh://git@github.com/HPCesia" = {
 23                insteadOf = "https://github.com/HPCesia";
 24              };
 25              "ssh://git@codeberg.org/HPCesia" = {
 26                insteadOf = "https://codeberg.org/HPCesia";
 27              };
 28              "ssh://git@git.net.trin.one/HPCesia" = {
 29                insteadOf = "https://git.net.trin.one/HPCesia";
 30              };
 31            };
 32          }
 33        ]))
 34      ++ (den.lib.policy.when
 35        ({host, ...}: host.hasAspect den.aspects.roles.desktop)
 36        (with den.aspects; [
 37          desktop.browser.chromium
 38          desktop.browser.floorp
 39          desktop.browser.floorp.mkDefault
 40          desktop.env.shell.noctalia
 41          desktop.env.wm.niri
 42          desktop.env.locale
 43          desktop.flatpak
 44          desktop.gnupg
 45          desktop.input-method.fcitx5
 46          desktop.kdeconnect
 47          desktop.terminal.foot
 48
 49          desktop.app.kdenlive
 50          desktop.app.libreoffice
 51          desktop.app.mpv
 52          desktop.app.obs-studio
 53          desktop.app.picard
 54        ]))
 55      ++ (den.lib.policy.when
 56        ({host, ...}: host.hasAspect den.aspects.roles.game)
 57        (with den.aspects; [
 58          game.heroic
 59          game.hoyo
 60          game.ludusavi
 61          game.minecraft
 62          game.steam
 63        ]));
 64  };
 65
 66  den.users.registry.hpcesia = {
 67    groups = [
 68      "admins"
 69    ];
 70    identity = {
 71      displayName = "HPCesia";
 72      email = "me@hpcesia.com";
 73      avatar = ./avatar.png;
 74      gpgKeys = [
 75        ./gpg.asc
 76      ];
 77      sshKeys = [
 78        {
 79          tag = "hpcesia@kevin";
 80          key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFMKaGC2I3an4AJDeWzVx5vhm63+kxi6zJNdh7yEp6CK";
 81        }
 82        {
 83          tag = "hpcesia@yubikey";
 84          needVerify = true;
 85          key = "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIH6wZFUEv9pSV+MgzqZRJ08WwJvL5FRMhayp73kCnDckAAAABHNzaDo=";
 86        }
 87      ];
 88    };
 89    system = {
 90      hashedPasswordAged = ./hashed-password.age;
 91      themes.theme = "catppuccin";
 92      settings = {
 93        desktop = {
 94          terminal.default = "foot";
 95          flatpak = {
 96            packages = [
 97              "com.qq.QQ"
 98              "org.mozilla.thunderbird"
 99            ];
100            overrides = {
101              "org.mozilla.thunderbird".Context = {
102                sockets = [
103                  "gpg-agent" # Expose GPG agent
104                  "pcsc" # Expose smart cards (i.e. YubiKey)
105                ];
106              };
107            };
108          };
109        };
110      };
111    };
112  };
113}