Flake wipe-install: niri + DMS, LUKS + btrfs, iGPU-only. Deferred work is specced in todo/, not implemented.
| Part | Detail |
|---|---|
| Host | stump, Huawei MateBook X Pro MACH-WX9, UEFI, SecureBoot off |
| CPU/iGPU | i7-8550U 4C/8T, UHD 620 (modesetting, i915), microcode + firmware on |
| dGPU | MX150 disabled (nouveau blacklisted) |
| RAM/swap | 16G RAM, zram only, no hibernate |
| Disk | nvme0n1 477G Samsung PM981 |
| Net | NetworkManager (wlan0), bluetooth powerOnBoot |
- Flake
.#stump(x86_64-linux,26.05, LTSlinuxPackages,allowUnfree = true,stateVersion 26.05). - Inputs:
nixpkgs nixos-26.05,home-manager release-26.05,disko,nixos-hardware(common-cpu-intel,common-pc-laptop,common-pc-laptop-ssd). - Stack: niri + DMS (
systemd.enable, greetercompositor.name = "niri"), PipeWire + rtkit, ppd + upower + fstrim + zram, Limine bootloader.
graph TD; flake["flake.nix .#stump"]-->hosts["hosts/stump/"]; flake-->mods["modules/nixos/"]; flake-->hm["home/on3i/"]
Key paths:
- Repo:
flake.nix,hosts/stump/{default,hardware,disko}.nix,modules/nixos/{desktop,dms,theming}.nix,home/on3i/{default,niri,opencode}.nix - Disk:
/boot(1G ESP,fmask/dmask=0077),/,/home,/nix(LUKScrypted→ btrfs@root/@home/@nix,compress=zstd,noatime) - Runtime:
~/.config/niri/config.kdl,~/.config/niri/dms/*.kdl,~/.config/DankMaterialShell/settings.json
Destructive: wipes nvme0n1. Boot NixOS 26.05 minimal ISO, UEFI, SecureBoot off.
nmtui # connect wifi
sudo -i
echo "experimental-features = nix-command flakes" >> ~/.config/nix/nix.conf
git clone git@github.com:on3iropolos/nix.git && cd nix
mkpasswd -m sha-512 # paste as hosts/stump/default.nix:hashedPassword
git add -A
nix run github:nix-community/disko -- --mode destroy,format,mount --flake ".#stump"
mount | grep /mnt # expect /boot, /, /home, /nix
nixos-install --flake ".#stump" --root /mnt --no-root-passwd
nixos-enter --root /mnt -c 'passwd on3i' # skip if hashedPassword set
rebootFirst boot, in order:
sudo nixos-rebuild switch --flake .#stump
dms setup
systemctl --user status dms
dms doctor
dms ipc call spotlight toggleconfig.kdl is flake-managed; dms setup owns dms/*.kdl — never hand-write DMS binds. Set scale 1.5 in DMS Settings → Displays (dms/outputs.kdl).
Verify:
wpctl status; bluetoothctl power on; brightnessctl s 10%; systemctl suspend; sudo fstrim -Avgit add -A && nix flake check
nix fmt # nixfmt-tree
nix flake update # review flake.lock diffNever push --force, never commit secrets (secrets/ ignored except .gitkeep).
git add -A && sudo nixos-rebuild switch --flake ".#stump" # activate now
git add -A && sudo nixos-rebuild boot --flake ".#stump" # next reboot
sudo nix-collect-garbage -d
nixos-rebuild switch --rollback # fallback bootsSee todo/, never imported by flake:
| Spec | Scope |
|---|---|
nvidia-offload.md |
MX150 PRIME, allowUnfree |
power-tuning.md |
thermald vs ppd, hibernate |
secrets-impermanence-hardening.md |
sops, /persist, lanzaboote |
bitwarden-ssh.md |
bw + SSH agent |