- 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>
72 lines
2.1 KiB
Nix
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
|
|
}
|