| { lib, pkgs, inputs, system, target, format, virtual, systems, config, ... }: { |
| networking.hostName = "greylag"; |
| boot.loader.systemd-boot.enable = true; |
| boot.loader.efi.canTouchEfiVariables = true; |
| |
| boot.initrd.availableKernelModules = |
| [ "xhci_pci" "thunderbolt" "nvme" "uas" "usbhid" "sd_mod" "ext4" ]; |
| boot.initrd.kernelModules = [ ]; |
| boot.kernelModules = [ "kvm-intel" ]; |
| boot.extraModulePackages = [ ]; |
| |
| boot.initrd.systemd.enable = true; # needed for the way we do our YubiKey |
| boot.initrd.luks.devices."key".device = "/dev/disk/by-label/KEY"; |
| |
| boot.initrd.luks.devices."luks-expansion0" = { |
| device = "/dev/disk/by-label/EXPANSION0"; |
| keyFile = "/key:/dev/mapper/key"; |
| }; |
| boot.initrd.luks.devices."luks-ssd0" = { |
| device = "/dev/disk/by-label/SSD0"; |
| keyFile = "/key:/dev/mapper/key"; |
| }; |
| |
| fileSystems = (lib.mapAttrs (_: share_name: { |
| device = "/dev/disk/by-label/BTRFS0"; |
| fsType = "btrfs"; |
| options = [ "subvol=shared/${share_name}" "compress=zstd:1" ]; |
| }) { |
| "/home/minion/Code" = "@Code"; |
| "/var/lib/containers" = "@containers"; |
| "/etc/NetworkManager" = "@NetworkManager"; |
| "/home/minion/.local/share/containers/storage" = "@personal-containers"; |
| "/home/minion/.gtimelog" = "@gtimelog"; |
| "/home/minion/Documents" = "@documents"; |
| }) // { |
| "/mnt" = { |
| device = "/dev/mapper/key"; |
| fsType = "ext4"; |
| }; |
| |
| "/" = { |
| device = "/dev/disk/by-label/BTRFS0"; |
| fsType = "btrfs"; |
| options = [ "subvol=@nixos" "compress=zstd:1" ]; |
| }; |
| |
| "/var" = { |
| device = "/dev/disk/by-label/BTRFS0"; |
| fsType = "btrfs"; |
| options = [ "subvol=@nixos-var" "compress=zstd:1" ]; |
| }; |
| |
| "/home" = { |
| device = "/dev/disk/by-label/BTRFS0"; |
| fsType = "btrfs"; |
| options = [ "subvol=@nixos-home" "compress=zstd:1" ]; |
| }; |
| |
| "/nix" = { |
| device = "/dev/disk/by-label/BTRFS0"; |
| fsType = "btrfs"; |
| options = [ "subvol=@nixos-nix" "compress=zstd:1" ]; |
| }; |
| |
| "/boot" = { |
| device = "/dev/disk/by-label/ESP"; |
| fsType = "vfat"; |
| }; |
| }; |
| |
| swapDevices = [ ]; |
| |
| # Enables DHCP on each ethernet and wireless interface. In case of scripted networking |
| # (the default) this is the recommended approach. When using systemd-networkd it's |
| # still possible to use this option, but it's recommended to use it in conjunction |
| # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. |
| networking.useDHCP = lib.mkDefault true; |
| # networking.interfaces.enp0s13f0u4u4u4.useDHCP = lib.mkDefault true; |
| # networking.interfaces.wlp166s0.useDHCP = lib.mkDefault true; |
| |
| nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; |
| powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; |
| hardware.cpu.intel.updateMicrocode = |
| lib.mkDefault config.hardware.enableRedistributableFirmware; |
| } |