main
 1{
 2  den,
 3  lib,
 4  ...
 5}: {
 6  den.aspects.desktop.terminal.foot = {
 7    includes = [den.aspects.desktop.terminal];
 8
 9    homeManager = {
10      host,
11      user,
12      ...
13    }: let
14      fontsCfg = host.settings.desktop.style.fonts;
15    in {
16      xdg.terminal-exec.settings.default =
17        if (user.system.settings.desktop.terminal.default == "foot")
18        then lib.mkBefore ["foot.desktop"]
19        else lib.mkAfter ["foot.desktop"];
20
21      programs.foot = {
22        enable = true;
23        settings = {
24          main = {
25            pad = "10x10";
26            font = "${ (builtins.elemAt fontsCfg.monospace 0).name}:size=${toString fontsCfg.sizes.terminal}";
27            dpi-aware = "no";
28          };
29        };
30      };
31    };
32  };
33
34  den.aspects.desktop.terminal.foot.themes = {
35    catppuccin = {
36      homeManager = {pkgs, ...}: {
37        programs.foot = {
38          settings = {
39            main.include = "${pkgs.fetchurl {
40              pname = "foot-theme-catppuccin-mocha.ini";
41              url = "https://github.com/catppuccin/foot/raw/99384a83ee9246cd0a38aeee07d8300367724602/themes/static/catppuccin-mocha.ini";
42              hash = "sha256-LmWxEy/euVLqtjC/emb0R5LVb62q6OfvEc8Vkyc84BQ=";
43            }}";
44          };
45        };
46      };
47    };
48  };
49}