README.md (8385B)
Rendered
Configuration Modules
The modules directory contains the custom configuration modules that form the very core of my configuration for multiple PCs and various use-cases, that follows the dendritic pattern:
- Directories are purely organizational
- Files prefixed with
_ are not auto-imported
core: flake-parts plumbing that wires everything together
hosts: per-device configuration, declared as configurations.nixos.<host> and configurations.homeManager.<user@host>, composing the modules below
users: user-specific Home Manager configurations
Module List
An overview of every configuration module in this repository.
Type indicates whether a module extends flake.modules.nixos, flake.modules.homeManager, or both.
★ marks modules imported by default
| Module |
Type |
Description |
auth |
Home Manager |
Authentication credential managers |
discord |
Home Manager |
Discord chat client |
firefox |
Home Manager |
Firefox browser |
internet |
Home Manager |
Internet apps |
notes |
Home Manager |
Obsidian note-taking |
spotify |
Home Manager |
Spotify music client |
stream |
Home Manager |
Streaming tools |
syncthing |
Home Manager |
Syncthing file sync |
youtube |
Home Manager |
YouTube Music & TUI |
vscode |
Home Manager |
Visual Studio Code editor |
antigravity |
Home Manager |
Google Antigravity |
zed |
Home Manager |
Zed Editor |
codex |
Home Manager |
OpenAI Codex |
claude |
Home Manager |
Anthropic Claude |
flatpak |
Both |
Flatpak app sandboxing |
latex |
Both |
LaTeX typesetting |
office |
Both |
Office suite environment |
tools |
Both |
General CLI/GUI tools |
wine |
Both |
Wine Windows compatibility |
git |
Both |
git version control |
git-hosting |
NixOS |
Gitea code hosting |
git-runner |
NixOS |
GitHub/GitLab CI runner |
| Module |
Type |
Description |
gnome |
Both |
GNOME desktop environment |
hyprland |
Both |
Hyprland window manager |
niri |
Both |
Niri window manager |
| Module |
Type |
Description |
games |
Both |
Gaming environment (Lutris, Steam) |
minecraft |
Home Manager |
Minecraft client |
osu |
Home Manager |
osu! rhythm game |
mc-server |
NixOS |
Minecraft server |
roblox |
NixOS |
Roblox client |
| Module |
Type |
Description |
theme ★ |
Both |
System-wide theming |
fonts ★ |
NixOS |
System fonts |
gtk |
Both |
GTK theming |
qt |
Both |
Qt theming |
| Module |
Type |
Description |
cpu ★ |
NixOS |
CPU configuration |
gpu ★ |
NixOS |
GPU configuration |
laptop |
Both |
Laptop tweaks |
mouse |
Both |
Mouse configuration |
mobile |
NixOS |
Mobile firmware |
printer |
NixOS |
Printer firmware |
blockchain |
NixOS |
Blockchain support |
| Module |
Type |
Description |
shell ★ |
Both |
Shell configuration |
shell-utils |
Both |
Shell utilities |
prompt |
NixOS |
Shell prompt |
| Module |
Type |
Description |
base ★ |
Both |
Base system configuration |
base-ext |
Both |
Extended base configuration |
boot |
NixOS |
Boot loader configuration |
filesystem |
Both |
File system layout |
nix ★ |
Both |
Nix daemon & settings |
user ★ |
Both |
User accounts & Home Manager wiring |
security |
NixOS |
Security & hardening |
| Module |
Type |
Description |
android |
NixOS |
Android virtualisation |
docker |
NixOS |
Docker containers |
libvirt |
Both |
Libvirt/QEMU virtualisation |
vfio |
NixOS |
VFIO GPU passthrough |
| Module |
Type |
Description |
secrets ★ |
NixOS |
Secrets management |
Options
The following are the custom configuration options exposed by the modules above:
apps -
git -
hosting -
enable: Enable Gitea Code Hosting - true / false
domain: Website Domain Name - Ex. maydayv7.dev
secret: Path to Cloudflare Authentication Credentials
runner -
support: Enable Support for git Runners - null / "github" / "gitlab"
secret: Path to Secret for git Runner
-
wine - Package to use for wine - Ex. pkgs.wineWow64Packages.stagingFull
-
games -
-
mc-servers: List of Minecraft Servers -
name: Unique server name
type: Server Type - "fabric" / "skyblock"
memory: Memory (GB) allocated to server - Ex. 12
config: Server Properties (See here)
port: Main server TCP port - Ex. 25565
vc-port: Port for Simple Voice Chat - Ex. 24454
-
gui -
enable: Enable Graphical Desktop Session - true / false
fancy: Enable Fancy GUI Effects - true / false
display: Main GUI Display - Ex. "HDMI-A-1"
-
wallpaper: Desktop Wallpaper Choice (taken from files.wallpapers)
-
hardware -
cpu -
model: CPU Model - "" / "amd" / "intel"
cores: Number of CPU Cores - Ex. 4
mode: CPU Frequency Governor Mode - "ondemand" / "performance" / "powersave"
-
gpu -
enable: Discrete GPU Support - true / false
model: Discrete GPU Model - null / "nvidia"
-
system -
kernel: Linux Kernel Variant to be used - "lts" / "variant"
kernelModules: Linux Kernel Modules to load
scheme: Supported Boot Firmware Scheme - null / "mbr" / "efi" / "secure"
fs -
scheme: Disk Filesystem Scheme - null / "simple" / "advanced"
swap: Size of SWAP Partition - Ex. "8G"
disk: Target Disk for Installation (Use ls -l /dev/disk/by-id) - Ex. "/dev/disk/by-id/nvme-..."
persist: System Files to preserve across reboots (while using the advanced File System Layout)
-
nix -
index: Enable Package Indexer - true / false
tools: Enable Additional Nix Tools - true / false
-
virt -
-
vfio -
setup: Enable VFIO Setup Mode - true / false
passthrough: PCI Device IDs for VFIO - Ex. [ "10de:28e0" "10de:22be" ]
isolate: Host CPU set to isolate for pinned vCPUs - Ex. "2-4,10-12"
hugepages: Number of 1 GiB hugepages to reserve - Ex. 16
-
user -
credentials: Individual User Credentials -
name: Alternative (Work) User Name
fullname: Full User Name
mail: User Mail ID - Ex. "user@email.com"
key: User GPG Key - Ex. "CF616EB19C2765E4"
Code
| # Configuration Modules
The `modules` directory contains the custom configuration modules that form the very core of my configuration for multiple PCs and various use-cases, that follows the [dendritic](https://github.com/mightyiam/dendritic) pattern:
- Directories are purely organizational
- Files prefixed with `_` are not auto-imported
- [`core`](./core): `flake-parts` plumbing that wires everything together
- [`hosts`](./hosts): per-device configuration, declared as `configurations.nixos.<host>` and `configurations.homeManager.<user@host>`, composing the modules below
- [`users`](./users/): user-specific Home Manager configurations
## Module List
An overview of every configuration module in this repository.
**Type** indicates whether a module extends `flake.modules.nixos`, `flake.modules.homeManager`, or both.
**★** marks modules imported by default
### [`apps`](./apps)
| Module | Type | Description |
| ------------- | ------------ | ---------------------------------- |
| `auth` | Home Manager | Authentication credential managers |
| `discord` | Home Manager | Discord chat client |
| `firefox` | Home Manager | Firefox browser |
| `internet` | Home Manager | Internet apps |
| `notes` | Home Manager | Obsidian note-taking |
| `spotify` | Home Manager | Spotify music client |
| `stream` | Home Manager | Streaming tools |
| `syncthing` | Home Manager | Syncthing file sync |
| `youtube` | Home Manager | YouTube Music & TUI |
| `vscode` | Home Manager | Visual Studio Code editor |
| `antigravity` | Home Manager | Google Antigravity |
| `zed` | Home Manager | Zed Editor |
| `codex` | Home Manager | OpenAI Codex |
| `claude` | Home Manager | Anthropic Claude |
| `flatpak` | Both | Flatpak app sandboxing |
| `latex` | Both | LaTeX typesetting |
| `office` | Both | Office suite environment |
| `tools` | Both | General CLI/GUI tools |
| `wine` | Both | Wine Windows compatibility |
| `git` | Both | `git` version control |
| `git-hosting` | NixOS | Gitea code hosting |
| `git-runner` | NixOS | GitHub/GitLab CI runner |
### [`desktop`](./desktop)
| Module | Type | Description |
| ---------- | ---- | ------------------------- |
| `gnome` | Both | GNOME desktop environment |
| `hyprland` | Both | Hyprland window manager |
| `niri` | Both | Niri window manager |
### [`games`](./games)
| Module | Type | Description |
| ----------- | ------------ | ---------------------------------- |
| `games` | Both | Gaming environment (Lutris, Steam) |
| `minecraft` | Home Manager | Minecraft client |
| `osu` | Home Manager | osu! rhythm game |
| `mc-server` | NixOS | Minecraft server |
| `roblox` | NixOS | Roblox client |
### [`gui`](./gui)
| Module | Type | Description |
| --------- | ----- | ------------------- |
| `theme` ★ | Both | System-wide theming |
| `fonts` ★ | NixOS | System fonts |
| `gtk` | Both | GTK theming |
| `qt` | Both | Qt theming |
### [`hardware`](./hardware)
| Module | Type | Description |
| ------------ | ----- | ------------------- |
| `cpu` ★ | NixOS | CPU configuration |
| `gpu` ★ | NixOS | GPU configuration |
| `laptop` | Both | Laptop tweaks |
| `mouse` | Both | Mouse configuration |
| `mobile` | NixOS | Mobile firmware |
| `printer` | NixOS | Printer firmware |
| `blockchain` | NixOS | Blockchain support |
### [`shell`](./shell)
| Module | Type | Description |
| ------------- | ----- | ------------------- |
| `shell` ★ | Both | Shell configuration |
| `shell-utils` | Both | Shell utilities |
| `prompt` | NixOS | Shell prompt |
### [`system`](./system)
| Module | Type | Description |
| ------------ | ----- | ----------------------------------- |
| `base` ★ | Both | Base system configuration |
| `base-ext` | Both | Extended base configuration |
| `boot` | NixOS | Boot loader configuration |
| `filesystem` | Both | File system layout |
| `nix` ★ | Both | Nix daemon & settings |
| `user` ★ | Both | User accounts & Home Manager wiring |
| `security` | NixOS | Security & hardening |
### [`virt`](./virt)
| Module | Type | Description |
| --------- | ----- | --------------------------- |
| `android` | NixOS | Android virtualisation |
| `docker` | NixOS | Docker containers |
| `libvirt` | Both | Libvirt/QEMU virtualisation |
| `vfio` | NixOS | VFIO GPU passthrough |
### [`secrets`](../secrets)
| Module | Type | Description |
| ----------- | ----- | ------------------ |
| `secrets` ★ | NixOS | Secrets management |
## Options
The following are the custom configuration options exposed by the modules above:
- [`apps`](./apps) -
- `git` -
- `hosting` -
- `enable`: Enable Gitea Code Hosting - `true / false`
- `domain`: Website Domain Name - Ex. `maydayv7.dev`
- `secret`: Path to Cloudflare Authentication Credentials
- `runner` -
- `support`: Enable Support for `git` Runners - `null / "github" / "gitlab"`
- `secret`: Path to Secret for `git` Runner
- `wine` - Package to use for `wine` - Ex. `pkgs.wineWow64Packages.stagingFull`
- [`games`](./games) -
- `mc-servers`: List of Minecraft Servers -
- `name`: Unique server name
- `type`: Server Type - `"fabric" / "skyblock"`
- `memory`: Memory (GB) allocated to server - Ex. `12`
- `config`: Server Properties (See [here](https://minecraft.fandom.com/wiki/Server.properties))
- `port`: Main server TCP port - Ex. `25565`
- `vc-port`: Port for [Simple Voice Chat](https://modrinth.com/plugin/simple-voice-chat) - Ex. `24454`
- [`gui`](./gui) -
- `enable`: Enable Graphical Desktop Session - `true / false`
- `fancy`: Enable Fancy GUI Effects - `true / false`
- `display`: Main GUI Display - Ex. `"HDMI-A-1"`
- `wallpaper`: Desktop Wallpaper Choice (taken from `files.wallpapers`)
- [`hardware`](./hardware) -
- `cpu` -
- `model`: CPU Model - `"" / "amd" / "intel"`
- `cores`: Number of CPU Cores - Ex. `4`
- `mode`: CPU Frequency Governor Mode - `"ondemand" / "performance" / "powersave"`
- `gpu` -
- `enable`: Discrete GPU Support - `true / false`
- `model`: Discrete GPU Model - `null / "nvidia"`
- [`system`](./system) -
- `kernel`: Linux Kernel Variant to be used - `"lts" / "variant"`
- `kernelModules`: Linux Kernel Modules to load
- `scheme`: Supported Boot Firmware Scheme - `null / "mbr" / "efi" / "secure"`
- `fs` -
- `scheme`: Disk Filesystem Scheme - `null / "simple" / "advanced"`
- `swap`: Size of SWAP Partition - Ex. `"8G"`
- `disk`: Target Disk for Installation (Use `ls -l /dev/disk/by-id`) - Ex. `"/dev/disk/by-id/nvme-..."`
- `persist`: System Files to preserve across reboots (while using the `advanced` File System Layout)
- `nix` -
- `index`: Enable Package Indexer - `true / false`
- `tools`: Enable Additional Nix Tools - `true / false`
- [`virt`](./virt) -
- `vfio` -
- `setup`: Enable VFIO Setup Mode - `true / false`
- `passthrough`: PCI Device IDs for VFIO - Ex. `[ "10de:28e0" "10de:22be" ]`
- `isolate`: Host CPU set to isolate for pinned vCPUs - Ex. `"2-4,10-12"`
- `hugepages`: Number of 1 GiB hugepages to reserve - Ex. `16`
- [`user`](./system/user) -
- `credentials`: Individual User Credentials -
- `name`: Alternative (Work) User Name
- `fullname`: Full User Name
- `mail`: User Mail ID - Ex. `"user@email.com"`
- `key`: User GPG Key - Ex. `"CF616EB19C2765E4"`
|