/ hosts / donk / hardware.nix
hardware.nix
 1  {
 2    config,
 3    lib,
 4    modulesPath,
 5    ...
 6  }:
 7  {
 8    imports = [
 9      (modulesPath + "/installer/scan/not-detected.nix")
10    ];
11  
12    fileSystems."/" = {
13      device = "/dev/disk/by-uuid/1dc63794-7ade-4515-bb78-5ad39efc3cec";
14      fsType = "ext4";
15    };
16  
17    boot = {
18      kernelModules = [ "kvm-intel" ];
19      loader = {
20        systemd-boot.enable = true;
21        efi.canTouchEfiVariables = true;
22      };
23  
24      initrd = {
25        availableKernelModules = [
26          "xhci_pci"
27          "nvme"
28          "usb_storage"
29          "sd_mod"
30        ];
31  
32        luks = {
33          devices."luks-a5c81d3f-2beb-4f03-846a-8180b66906c2" = {
34            device = "/dev/disk/by-uuid/a5c81d3f-2beb-4f03-846a-8180b66906c2";
35            crypttabExtraOpts = [ "fido2-device=auto" ];
36          };
37          devices."luks-75b2ca82-089f-43a6-9898-717ecff82bc1" = {
38            device = "/dev/disk/by-uuid/75b2ca82-089f-43a6-9898-717ecff82bc1";
39            crypttabExtraOpts = [ "fido2-device=auto" ];
40          };
41        };
42        systemd.enable = true;
43      };
44    };
45  
46    fileSystems."/boot" = {
47      device = "/dev/disk/by-uuid/2640-9029";
48      fsType = "vfat";
49      options = [
50        "fmask=0077"
51        "dmask=0077"
52      ];
53    };
54  
55    systemd.network.networks = {
56      "50-dhcp" = {
57        matchConfig.Name = "en*";
58        networkConfig.DHCP = "yes";
59        dhcpV4Config.UseDNS = false;
60        dhcpV6Config.UseDNS = false;
61        linkConfig.RequiredForOnline = "no";
62      };
63      "50-wireless" = {
64        matchConfig.Name = "wlan0";
65        dhcpV4Config.UseDNS = false;
66        dhcpV6Config.UseDNS = false;
67        networkConfig = {
68          DHCP = "yes";
69          IgnoreCarrierLoss = "3s";
70        };
71      };
72    };
73  
74    networking.wireless.iwd = {
75      enable = true;
76      settings = {
77        IPv6.Enabled = true;
78        # https://man.archlinux.org/man/iwd.network.5#SETTINGS
79        Settings = {
80          AutoConnect = true;
81          Hidden = true; # show hidden
82          AlwaysRandomizeAddress = true; # random mac
83        };
84      };
85    };
86  
87    swapDevices = [
88      { device = "/dev/disk/by-uuid/8e846295-8a8c-4bab-a07a-d615743733e1"; }
89    ];
90  
91    boot.resumeDevice = "/dev/disk/by-uuid/8e846295-8a8c-4bab-a07a-d615743733e1";
92  
93    nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
94    hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
95  }