No description
Find a file
2026-06-04 16:41:17 -03:00
installer fix system deprecated warning 2026-05-23 15:50:27 -03:00
modules ox prober 2026-06-04 16:41:17 -03:00
quickshell fix lang change hotkey 2026-04-23 10:42:20 -03:00
secrets feat: initial commit 2026-03-27 19:35:15 -03:00
wallpapers add quickshell 2026-04-15 10:38:34 -03:00
.envrc proper repo 2026-05-22 15:51:43 -03:00
.gitignore proper repo 2026-05-22 15:51:43 -03:00
.sops.yaml feat: initial commit 2026-03-27 19:35:15 -03:00
flake.lock add disko 2026-05-23 15:31:28 -03:00
flake.nix fix system deprecated warning 2026-05-23 15:50:27 -03:00
Justfile add disko 2026-05-23 15:31:28 -03:00
README.md proper repo 2026-05-22 15:51:43 -03:00

NixOS Configuration

Personal NixOS configuration using the den framework (dendritic pattern).

Hosts

Hostname Profile GPU
desktop Gaming + development Nvidia
notebook Portable development Intel

Prerequisites

  • just: nix shell nixpkgs#just
  • nvd for just diff: nix shell nixpkgs#nvd

Usage

# Rebuild and switch (uses current hostname automatically)
just switch

# Target a specific host
just switch desktop
just switch notebook

# Build only, without switching
just build

# Test (applies temporarily, reverts on next boot)
just test

# Update all inputs
just update

# Update a single input
just update-input nixpkgs

# Run garbage collection
just gc

# See what changed before switching
just diff

Secrets (SOPS + age)

Secrets are stored encrypted in secrets/secrets.yaml and decrypted at boot by sops-nix.

First-time setup on a new machine

  1. Generate an age key:

    mkdir -p /etc/sops/age
    age-keygen -o /etc/sops/age/keys.txt
    
  2. Add the new public key to .sops.yaml under keys:.

  3. Re-encrypt secrets for all keys:

    sops updatekeys secrets/secrets.yaml
    

Adding a new secret

  1. Edit the secrets file: just secrets
  2. Declare it in modules/secrets.nix under sops.secrets.

Rotating the age key

  1. Generate a new key (step 1 above).
  2. Update .sops.yaml with the new public key.
  3. Run sops updatekeys secrets/secrets.yaml to re-encrypt.

Identity

All user identity (name, email, SSH key) lives in modules/identity.nix. Override the defaults there or in a profile-specific module when creating a new user profile.

Adding a new host

  1. Run nixos-generate-config on the target machine and copy the output to modules/_hardware/<hostname>-hardware.nix.
  2. Add the host in modules/den.nix under den.hosts.
  3. Define or reuse an aspect for the host profile.