Files
nixconfig/hosts/argon/configuration.nix
aaronandClaude Opus 5.5 8d19be9527 refactor: fold host-only modules into the hosts
- argon owns its gpu settings, calibre and the luks drives, now generated from one table
- claudecode.nix is gone, claude-code lives in packages.nix
- home-manager options live next to the home-manager wiring in flake.nix
- settings.nix: one nix block, extra-substituters instead of repeating the cache.nixos.org defaults
- README: current layout

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 09:25:40 +02:00

72 lines
2.1 KiB
Nix

# 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/<name>
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
}