main
 1{den, ...}: {
 2  den.users.hpcesia = {
 3    system.settings = {
 4      desktop = {
 5        app = {
 6          browser.defaults = ["floorp.desktop"];
 7          term.default = "foot";
 8        };
 9        flatpak = {
10          packages = [
11            "com.qq.QQ"
12            "org.mozilla.thunderbird"
13          ];
14          overrides = {
15            "org.mozilla.thunderbird".Context = {
16              sockets = [
17                "gpg-agent" # Expose GPG agent
18                "pcsc" # Expose smart cards
19              ];
20            };
21          };
22        };
23      };
24    };
25  };
26
27  den.aspects.hpcesia = {
28    includes = let
29      includeWhen = cond: aspects:
30        map (aspect: (den.lib.policy.when cond aspect)) aspects;
31    in
32      (includeWhen ({host, ...}: host.hasAspect den.aspects.desktop) (with den.aspects; [
33        desktop.app.browser.chromium
34        desktop.app.browser.floorp
35        desktop.app.imv
36        desktop.app.kdeconnect
37        desktop.app.kdenlive
38        desktop.app.kelivo
39        desktop.app.libreoffice
40        desktop.app.mpv
41        desktop.app.nocturne
42        desktop.app.obs-studio
43        desktop.app.picard
44        desktop.app.term.foot
45        desktop.flatpak
46        desktop.ime.fcitx5
47        desktop.noctalia
48        desktop.yubikey
49        desktop.wm.niri
50      ]))
51      ++ (includeWhen ({host, ...}: host.hasAspect den.aspects.desktop && host.hasAspect den.aspects.desktop.game) (with den.aspects; [
52        desktop.game.heroic
53        desktop.game.hoyo
54        desktop.game.ludusavi
55        desktop.game.mangohud
56        desktop.game.minecraft
57        desktop.game.steam
58      ]));
59  };
60}