main
 1{den, ...}: {
 2  den.hosts.kevin = {
 3    settings = {
 4      desktop.aesthetic = {
 5        fonts.size = 13;
 6      };
 7    };
 8  };
 9
10  den.aspects.kevin = {
11    includes = with den.aspects.hardware; [
12      cpu.intel
13      gpu.intel
14      gpu.nvidia
15
16      bluetooth
17      thunderbolt
18    ];
19
20    nixos = {
21      hardware.facter.reportPath = ./facter.json;
22
23      boot.loader.systemd-boot.enable = true;
24    };
25
26    provides.to-users = {
27      hjem = {
28        pkgs,
29        lib,
30        config,
31        ...
32      }: {
33        packages = [pkgs.kanshi];
34
35        xdg.config.files."kanshi/config".source = ./kanshi-config;
36
37        systemd.services.kanshi = {
38          description = "Dynamic output configuration";
39          documentation = ["man:kanshi(1)"];
40
41          partOf = ["graphical-session.target"];
42          requires = ["graphical-session.target"];
43          after = ["graphical-session.target"];
44          wantedBy = ["graphical-session.target"];
45
46          script = lib.getExe pkgs.kanshi;
47          reload = "${lib.getExe' pkgs.kanshi "kanshictl"} reload";
48          reloadTriggers = ["${config.xdg.config.directory}/kanshi/config"];
49
50          serviceConfig.Restart = "always";
51        };
52      };
53    };
54  };
55}