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