# argon: desktop with an amd gpu and three luks-encrypted data drives. # The drives are unlocked in the initrd with keyfiles from /etc/nixos/keys. { lib, pkgs, ... }: let # luks name -> partition uuid, mounted at /mnt/ drives = { data1 = "dfae62cc-bad1-4879-bf9a-461bde833625"; data2 = "8312edae-9247-481b-a313-52a7f848f027"; nvmecache = "2352250e-4ebe-4f9a-bf66-0d4aaa961bd8"; }; key = name: "/etc/nixos/keys/${name}.key"; in { imports = [ ../../modules/nixos/appimage.nix ../../modules/nixos/astro.nix ../../modules/nixos/audio.nix ../../modules/nixos/bootloader.nix ../../modules/nixos/certificates.nix ../../modules/nixos/gnupg.nix ../../modules/nixos/greetd.nix ../../modules/nixos/locales.nix ../../modules/nixos/networking.nix ../../modules/nixos/niri.nix ../../modules/nixos/noctalia.nix ../../modules/nixos/openssh.nix ../../modules/nixos/packages.nix ../../modules/nixos/protonvpn.nix ../../modules/nixos/services.nix ../../modules/nixos/settings.nix ../../modules/nixos/steam.nix ../../modules/nixos/thunar.nix ../../modules/nixos/users.nix ../../modules/nixos/vial.nix ]; # host-specific niri config (outputs, input devices) home-manager.users.aaron.imports = [ ./niri.nix ]; # amd gpu: mesa/vulkan, and amdgpu in the initrd for plymouth hardware.graphics = { enable = true; enable32Bit = true; }; hardware.amdgpu.initrd.enable = true; # encrypted data drives boot.initrd.secrets = lib.mapAttrs' (name: _: lib.nameValuePair (key name) (key name)) drives; boot.initrd.luks.devices = lib.mapAttrs (name: uuid: { device = "/dev/disk/by-uuid/${uuid}"; keyFile = key name; }) drives; fileSystems = lib.mapAttrs' ( name: _: lib.nameValuePair "/mnt/${name}" { device = "/dev/mapper/${name}"; fsType = "ext4"; options = [ "nofail" ]; } ) drives; environment.systemPackages = with pkgs; [ amdgpu_top calibre # ebook management and kobo syncing ]; networking.hostName = "argon"; system.stateVersion = "25.11"; # don't change }