chore: repository cleanup and noctalia baseline #83

Merged
aaron merged 6 commits from chore/cleanup into main 2026-10-02 09:51:23 +02:00
9 changed files with 65 additions and 126 deletions
Showing only changes of commit 8d19be9527 - Show all commits
+10 -10
View File
@@ -6,20 +6,20 @@ My personal NixOS configurations.
```bash ```bash
. .
├── flake.lock ├── flake.nix # hosts and home-manager wiring
├── flake.nix # flake definition
├── hosts ├── hosts
│   └── neon │ ├── argon # desktop
│   ├── configuration.nix # import nix-modules for specific host │ ├── neon # laptop
│   └── hardware-configuration.nix # hardware configs for specific host │ └── default # test vm
│ ├── configuration.nix # host-specific settings and module imports
│ ├── hardware-configuration.nix # generated by nixos-generate-config
│ └── niri.nix # host-specific niri settings (outputs, input)
├── modules ├── modules
│   ├── home-manager │ ├── home-manager # user modules, imported by users/aaron/home.nix
│   │   ├── xyz_module.nix │ └── nixos # system modules, imported by the hosts
│   └── nixos
│   └── xyz_module.nix
└── users └── users
└── aaron └── aaron
└── home.nix # import home-manager modules for specific user └── home.nix # imports home-manager modules
``` ```
## installation ## installation
+3
View File
@@ -35,6 +35,9 @@
./hosts/${hostName}/configuration.nix ./hosts/${hostName}/configuration.nix
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.backupCommand = "mv -f {file} {file}.hm-bak-$(date +%Y%m%d%H%M%S)";
home-manager.extraSpecialArgs = { inherit inputs; }; home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users.aaron.imports = [ home-manager.users.aaron.imports = [
nixvim.homeModules.nixvim nixvim.homeModules.nixvim
+42 -8
View File
@@ -1,15 +1,25 @@
# 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 = [ imports = [
../../modules/nixos/appimage.nix ../../modules/nixos/appimage.nix
../../modules/nixos/astro.nix ../../modules/nixos/astro.nix
../../modules/nixos/audio.nix ../../modules/nixos/audio.nix
../../modules/nixos/bootloader.nix ../../modules/nixos/bootloader.nix
../../modules/nixos/calibre.nix
../../modules/nixos/certificates.nix ../../modules/nixos/certificates.nix
../../modules/nixos/claudecode.nix
../../modules/nixos/drives.nix
../../modules/nixos/gnupg.nix ../../modules/nixos/gnupg.nix
../../modules/nixos/graphics.nix
../../modules/nixos/greetd.nix ../../modules/nixos/greetd.nix
../../modules/nixos/locales.nix ../../modules/nixos/locales.nix
../../modules/nixos/networking.nix ../../modules/nixos/networking.nix
@@ -29,9 +39,33 @@
# host-specific niri config (outputs, input devices) # host-specific niri config (outputs, input devices)
home-manager.users.aaron.imports = [ ./niri.nix ]; home-manager.users.aaron.imports = [ ./niri.nix ];
# set hostname # amd gpu: mesa/vulkan, and amdgpu in the initrd for plymouth
networking.hostName = "argon"; hardware.graphics = {
enable = true;
enable32Bit = true;
};
hardware.amdgpu.initrd.enable = true;
# install state version # encrypted data drives
system.stateVersion = "25.11"; # Don't change 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
} }
+1 -5
View File
@@ -5,7 +5,6 @@
../../modules/nixos/audio.nix ../../modules/nixos/audio.nix
../../modules/nixos/bootloader.nix ../../modules/nixos/bootloader.nix
../../modules/nixos/certificates.nix ../../modules/nixos/certificates.nix
../../modules/nixos/claudecode.nix
../../modules/nixos/docker.nix ../../modules/nixos/docker.nix
../../modules/nixos/gnupg.nix ../../modules/nixos/gnupg.nix
../../modules/nixos/locales.nix ../../modules/nixos/locales.nix
@@ -26,9 +25,6 @@
# host-specific niri config (input devices, laptop binds) # host-specific niri config (input devices, laptop binds)
home-manager.users.aaron.imports = [ ./niri.nix ]; home-manager.users.aaron.imports = [ ./niri.nix ];
# set hostname
networking.hostName = "neon"; networking.hostName = "neon";
system.stateVersion = "25.11"; # don't change
# install state version
system.stateVersion = "25.11"; # Don't change
} }
-8
View File
@@ -1,8 +0,0 @@
{ pkgs, ... }:
{
# install calibre for ebook management and kobo syncing
environment.systemPackages = with pkgs; [
calibre
];
}
-7
View File
@@ -1,7 +0,0 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
claude-code
];
}
-45
View File
@@ -1,45 +0,0 @@
# Add encrypted drives to argon
{
# copy keyfiles into initrd to make them available during early boot
boot.initrd.secrets = {
"/etc/nixos/keys/data1.key" = "/etc/nixos/keys/data1.key";
"/etc/nixos/keys/data2.key" = "/etc/nixos/keys/data2.key";
"/etc/nixos/keys/nvmecache.key" = "/etc/nixos/keys/nvmecache.key";
};
# decrypt data drives with keyfiles for argon
boot.initrd.luks.devices = {
"data1" = {
device = "/dev/disk/by-uuid/dfae62cc-bad1-4879-bf9a-461bde833625";
keyFile = "/etc/nixos/keys/data1.key";
};
"data2" = {
device = "/dev/disk/by-uuid/8312edae-9247-481b-a313-52a7f848f027";
keyFile = "/etc/nixos/keys/data2.key";
};
"nvmecache" = {
device = "/dev/disk/by-uuid/2352250e-4ebe-4f9a-bf66-0d4aaa961bd8";
keyFile = "/etc/nixos/keys/nvmecache.key";
};
};
# mount decrypted filesystems
fileSystems."/mnt/data1" = {
device = "/dev/mapper/data1";
fsType = "ext4";
options = [ "nofail" ];
};
fileSystems."/mnt/data2" = {
device = "/dev/mapper/data2";
fsType = "ext4";
options = [ "nofail" ];
};
fileSystems."/mnt/nvmecache" = {
device = "/dev/mapper/nvmecache";
fsType = "ext4";
options = [ "nofail" ];
};
}
-17
View File
@@ -1,17 +0,0 @@
{ pkgs, ... }:
{
# enable amd GPU acceleration (mesa, vulkan, egl)
hardware.graphics = {
enable = true;
enable32Bit = true;
};
# install amdgpu_top
environment.systemPackages = with pkgs; [
amdgpu_top
];
# add amdgpu to the initrd for plymouth
hardware.amdgpu.initrd.enable = true;
}
+9 -26
View File
@@ -1,31 +1,25 @@
{ {
nix = { nix = {
# nix settings
settings = { settings = {
# enable flakes and nix-command
experimental-features = [ experimental-features = [
"nix-command" "nix-command"
"flakes" "flakes"
]; ];
# auto-optimize my nix-store
auto-optimise-store = true; auto-optimise-store = true;
# use all cores # parallel builds, each using all cores
max-jobs = "auto"; max-jobs = "auto";
# use all available cores per job
cores = 0; cores = 0;
# add trusted substituters (binary caches) # cache.nixos.org is the default, these come on top
substituters = [ extra-substituters = [ "https://nix-community.cachix.org" ];
"https://cache.nixos.org" extra-trusted-public-keys = [
"https://nix-community.cachix.org"
];
# add keys
trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
]; ];
trusted-users = [
"root"
"@wheel"
];
}; };
# enable automatic garbage collection
gc = { gc = {
automatic = true; automatic = true;
dates = "weekly"; dates = "weekly";
@@ -33,20 +27,9 @@
}; };
}; };
# add trusted users (able to modify the nix store) # steam, protonvpn, discord, etc.
nix.settings.trusted-users = [
"root"
"@wheel"
];
# allow unfree packages (steam, protonvpn, discord, etc.)
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
# links /libexec from derivations to /run/current-system/sw # links /libexec from derivations to /run/current-system/sw
environment.pathsToLink = [ "/libexec" ]; environment.pathsToLink = [ "/libexec" ];
# enable home-manager globally
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.backupCommand = "mv -f {file} {file}.hm-bak-$(date +%Y%m%d%H%M%S)";
} }