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