3f053c20e7cebeef0e9732abe9491a36d03de488
NixOS Configuration
Personal NixOS configuration for miku-homelab, built with Flakes and Home Manager.
Features
- NixOS Flakes
- Home Manager integration
- KDE Plasma 6
- Secure Boot with Lanzaboote
- Steam and gaming configuration
- PipeWire audio stack with per-app routing (Discord, mic, music, VBAN send, misc)
- Docker / container services
- Flatpak support
- Deskflow (keyboard/mouse sharing across machines)
- nix-ld for running unpatched dynamic binaries
- VS Code Server
- Agent tooling configuration (AGENTS.md / agents.nix)
- Declarative user environment
Repository Layout
.
├── AGENTS.md
├── flake.nix
├── flake.lock
├── README.md
├── TODO.md
├── .gitignore
│
├── .vscode/
│ └── mcp.json
│
├── hosts/
│ └── miku-homelab/
│ ├── default.nix
│ └── hardware-configuration.nix
│
├── modules/
│ ├── desktop/
│ │ ├── firefox.nix
│ │ └── plasma.nix
│ │
│ ├── nixos/
│ │
│ ├── security/
│ │ └── secureboot.nix
│ │
│ ├── services/
│ │ ├── containers.nix
│ │ ├── flatpak.nix
│ │ ├── maintenance.nix
│ │ └── vscode-server.nix
│ │
│ └── system/
│ ├── audio.nix
│ ├── fonts.nix
│ ├── gaming.nix
│ ├── graphics.nix
│ ├── networking.nix
│ ├── nix-ld.nix
│ ├── packages.nix
│ ├── shells.nix
│ └── users.nix
│
└── home/
└── emmatherock/
├── home.nix
├── agents.nix
├── audio.nix
├── deskflow.nix
├── desktop-apps.nix
├── gaming.nix
├── git.nix
├── media.nix
├── packages.nix
├── shell.nix
├── vscode.nix
└── pipewire/
├── 10-discord.conf
├── 10-mic.conf
├── 10-misc.conf
├── 10-music.conf
└── 10-vban-send.conf
Applying Configuration
Test a configuration without switching:
sudo nixos-rebuild test --flake .#miku-homelab
Apply permanently:
sudo nixos-rebuild switch --flake .#miku-homelab
Update flake inputs:
nix flake update
Home Manager
Home Manager is integrated as a NixOS module.
User configuration is located in:
home/emmatherock/
Desktop applications, development tools, gaming utilities, shell configuration, editor configuration, per-app PipeWire routing, and Deskflow are managed there.
Design Principles
- System configuration lives under
modules/system. - Desktop-specific configuration lives under
modules/desktop. - User applications and preferences belong in Home Manager whenever possible.
- Drivers, hardware, networking, audio services, and boot configuration remain managed by NixOS.
- Each module should have a single responsibility.
- Changes should be incremental and easy to review.
Rebuilding
After modifying the configuration:
sudo nixos-rebuild test --flake .#miku-homelab
If everything works:
sudo nixos-rebuild switch --flake .#miku-homelab
License
This repository is provided as-is for personal use and reference.
Languages
Nix
100%