summaryrefslogtreecommitdiff
path: root/configurations/ilmare/default.nix
blob: a1b5007759696103d2198a887ef652c51fff709e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
_: {
  nixfiles.modules = {
    wireguard.client.enable = true;

    syncthing.enable = true;

    android.enable = true;
    bluetooth.enable = true;
  };

  hardware.trackpoint = {
    enable = true;
    speed = 500;
    sensitivity = 250;
  };

  services = {
    thinkfan = {
      enable = true;
      settings = {
        sensors = [
          {
            hwmon = "/sys/class/hwmon";
            name = "coretemp";
            indices = [ 1 ];
          }
        ];
        fans = [ { tpacpi = "/proc/acpi/ibm/fan"; } ];
        levels = [
          [
            0
            0
            50
          ]
          [
            "level auto"
            50
            75
          ]
          [
            "level disengaged"
            75
            32767
          ]
        ];
      };
    };

    fprintd.enable = true;

    fwupd.enable = true;
  };

  boot = {
    kernelParams = [ "mem_sleep_default=deep" ];
    initrd.prepend = [ "${./acpi.cpio}" ];
  };

  disko.devices.disk.one = {
    type = "disk";
    device = "/dev/nvme0n1";
    content = {
      type = "gpt";
      partitions = {
        ESP = {
          size = "512M";
          type = "EF00";
          content = {
            type = "filesystem";
            format = "vfat";
            mountpoint = "/boot";
          };
        };
        LUKS = {
          size = "100%";
          content = {
            type = "luks";
            name = "cryptos";
            settings = {
              allowDiscards = true;
              bypassWorkqueues = true;
            };
            content = {
              type = "btrfs";
              extraArgs = [ "-f" ];
              subvolumes = {
                "/root" = {
                  mountpoint = "/";
                  mountOptions = [
                    "compress=zstd"
                    "noatime"
                  ];
                };
                "/nix" = {
                  mountpoint = "/nix";
                  mountOptions = [
                    "compress=zstd"
                    "noatime"
                  ];
                };
                "/home" = {
                  mountpoint = "/home";
                  mountOptions = [
                    "compress=zstd"
                    "noatime"
                  ];
                };
                "/swap" = {
                  mountpoint = "/.swapvol";
                  swap.swapfile.size = "16G";
                };
              };
            };
          };
        };
      };
    };
  };

  fileSystems."/home".neededForBoot = true;

  zramSwap = {
    enable = true;
    memoryPercent = 100;
  };

  nix = {
    buildMachines = [
      {
        hostName = "eonwe.shire.net";

        protocol = "ssh-ng";
        sshUser = "builder";
        sshKey = "/root/.ssh/id_ed25519";

        system = "x86_64-linux";
        supportedFeatures = [
          "nixos-test"
          "benchmark"
          "big-parallel"
          "kvm"
        ];
      }
    ];

    distributedBuilds = true;

    settings.builders-use-substitutes = true;
  };
}