███╗ ██╗██╗██╗ ██╗ ██████╗ ███████╗ ██████╗ ██████╗ ███╗ ██╗███████╗██╗ ██████╗
████╗ ██║██║╚██╗██╔╝██╔═══██╗██╔════╝ ██╔════╝██╔═══██╗████╗ ██║██╔════╝██║██╔════╝
██╔██╗ ██║██║ ╚███╔╝ ██║ ██║███████╗ ██║ ██║ ██║██╔██╗ ██║█████╗ ██║██║ ███╗
██║╚██╗██║██║ ██╔██╗ ██║ ██║╚════██║ ██║ ██║ ██║██║╚██╗██║██╔══╝ ██║██║ ██║
██║ ╚████║██║██╔╝ ██╗╚██████╔╝███████║ ╚██████╗╚██████╔╝██║ ╚████║██║ ██║╚██████╔╝
╚═╝ ╚═══╝╚═╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═════╝
Performance-Tuned • Developer-Focused • Gaming-Optimized
[!TIP] New to NixOS? Check out the docs index for a comprehensive guide!
🎯 What makes this configuration special:
just lint) plus nix flake check -L; no CI service runs this repo# 1️⃣ Clone the repository
git clone https://github.com/neg-serg/nixos-config /etc/nixos
cd /etc/nixos
# 2️⃣ Build and switch (with flakes)
sudo nixos-rebuild switch --flake .#trantor
# 3️⃣ Or use the helper (if zcli is enabled)
nh os switch
[!NOTE] Replace
trantorwith your hostname if you're setting up a different machine.
| 📁 Category | 🔢 Count | 📊 Progress |
|---|---|---|
| Module Domains | 27 | |
| Nix Files | 502 | |
| Custom Packages | 107 | |
| Module Files | 319 |
| Total Commits | 3200+ | |
graph TB
subgraph "🎯 Entry Point"
A[flake.nix]
end
subgraph "🖥️ Host Configuration"
B[hosts/trantor]
end
subgraph "📦 System Modules"
C[modules/features]
D[modules/cli]
E[modules/dev]
F[modules/user]
G[modules/servers]
end
subgraph "👤 User Configuration"
H[modules/user/nix-maid]
I[Hyprland Config]
J[Quickshell Panel]
end
subgraph "🎁 Custom Packages"
K[packages/overlay]
L[Game Launchers]
M[Productivity Tools]
end
A --> B
B --> C
B --> D
B --> E
B --> F
B --> G
H --> I
H --> J
C -.feature flags.-> D
C -.feature flags.-> E
K --> L
K --> M
style A fill:#5277C3,color:#fff
style B fill:#00D9FF,color:#000
style H fill:#FF6B35,color:#fff
style K fill:#4CAF50,color:#fff
flowchart LR
A[📝 Edit Config] --> B{🔍 Pre-commit + flake check}
B -->|✅ Pass| C[🎨 Format]
B -->|❌ Fail| A
C --> D[🔎 Lint]
D --> E[🏗️ Build]
E --> F{🧪 Test}
F -->|✅| G[🚀 Deploy]
F -->|❌| A
style A fill:#5277C3,color:#fff
style G fill:#4CAF50,color:#fff
style B fill:#FF9800,color:#fff
style F fill:#FF9800,color:#fff
game (Rust): CPU isolation + gamescope presets[!TIP] Steam Launch Options Example:
GAME_PIN_CPUSET=1-3,16-19 MANGOHUD=1 game-run gamescope -f --adaptive-sync -- %command%
Languages & Tools:
[!NOTE] Enable/disable languages via feature flags, e.g.,
features.dev.rust.enable = true;
🎨 Hyprland - Dynamic tiling Wayland compositor
📐 19 Workspaces - Semantic routing (term, web, dev, games, etc.)
💾 8 Scratchpads - Telegram, Music, Mail, Mixer, Torrents, Teardown, VPN, Rebuild
🎛️ Quickshell Panel - Custom status bar with system info
📦 nixos-config/
├── 📄 flake.nix # 🎯 Flake entry point
├── 📂 hosts/ # 🖥️ Host configurations
│ └── 📁 trantor/ # Primary workstation
│ ├── hardware.nix
│ ├── networking.nix
│ └── services/ # policy.nix, vpn.nix, telegram-units.nix, telegram/*.py
├── 📂 modules/ # 🧩 System modules (27 domains)
│ ├── 📁 features/ # ⚙️ Feature flags (16 files)
│ │ ├── core.nix # Core feature options
│ │ ├── gui.nix # GUI stack options
│ │ ├── dev.nix # Development tools
│ │ └── ...
│ ├── 📁 cli/ # 💻 CLI tools (10 files)
│ │ ├── tools.nix # 28 packages
│ │ ├── dev.nix # Git, encoding, fetch
│ │ └── ...
│ ├── 📁 user/nix-maid/ # 👤 User configuration
│ │ ├── 📁 hyprland/ # 🌊 Hyprland (4 modules)
│ │ │ ├── main.nix
│ │ │ ├── environment.nix
│ │ │ ├── files.nix
│ │ │ ├── services.nix
│ │ │ └── ... # workspaces live in files/gui/hypr/hyprland.lua
│ │ └── ...
│ ├── 📁 servers/ # 🖧 Server services
│ └── ...
├── 📂 packages/ # 🎁 Custom overlays (30)
│ ├── game/
│ ├── rmpc/
│ └── ...
├── 📂 files/ # 📝 Config files
│ ├── 📁 gui/hypr/ # Hyprland configs
│ ├── 📁 quickshell/ # Panel configuration
├── 📂 scripts/dev/ # 🔧 Dev & CI scripts
├── 📂 docs/ # 📚 Documentation (index, howto/, runbook-*.md)
pie title Module Categories Distribution
"System (8)" : 8
"Desktop/GUI (12)" : 12
"Development (6)" : 6
"Web & Comm (4)" : 4
"Core (16)" : 16
"Servers (7)" : 7
"Other (9)" : 9
| Module | Description | Files |
|---|---|---|
| 🎛️ args | Module arguments & impurity | 1 |
| ⚙️ features | Feature flags system | 14 |
| 📚 neg | Custom library helpers | 2 |
| 👥 profiles | Service profiles | 5 |
🟢 Active Services:
| Service | Purpose |
|---|---|
| 🔒 adguardhome | DNS-level ad blocking |
| 📡 avahi | mDNS/DNS-SD |
| 🎵 mpd | Music Player Daemon |
| 🔑 openssh | Remote access |
# 🐚 Enter development shell with all tools
nix develop
# 🎨 Format all code (nixfmt/treefmt)
just fmt
# 🔍 Run all checks (format + lint + build)
just check
# 🏗️ Build without switching
nixos-rebuild build --flake .#trantor
# 🚀 Rebuild and switch
just deploy
# 🪝 Enable repo git hooks (lint + commit-msg scope check)
just hooks-enable
[!IMPORTANT] Changes are validated by the pre-commit hook (
just lint) andnix flake check -L
graph LR
A[📝 Commit] --> B[🎨 Format Check]
B --> C[🔎 Lint Check]
C --> D[🧪 Build Test]
D --> E[✅ NixOS Eval]
E --> F[🎯 Custom Checks]
F --> G{All Pass?}
G -->|Yes| H[✅ Success]
G -->|No| I[❌ Fail]
style A fill:#5277C3,color:#fff
style H fill:#4CAF50,color:#fff
style I fill:#f44336,color:#fff
Automated Checks:
[!TIP] Pro Tip: Reserve specific CPU cores for gaming to eliminate system interrupts!
graph TB
subgraph "🖥️ CPU Core Layout"
subgraph "🏠 Housekeeping Cores (24 threads)"
A[Core 4-15]
B[Core 20-31]
end
subgraph "🎮 Gaming Cores ISOLATED (8 threads)"
C[Core 1-3]
D[Core 16-19]
end
end
G[System Services] --> A
G --> B
H[🎮 Games] --> C
H --> D
style C fill:#4CAF50,color:#fff
style D fill:#4CAF50,color:#fff
style H fill:#FF6B35,color:#fff
# 🎯 Basic CPU pinning
game-run %command%
# 🖥️ With Gamescope (VRR + adaptive sync)
game-run gamescope -f --adaptive-sync -- %command%
# ⚡ Performance preset (low latency)
gamescope-perf %command%
# 🎨 Quality preset (visual fidelity)
gamescope-quality %command%
# 🌈 HDR support
gamescope-hdr %command%
[!NOTE] Steam Launch Options Example (Competitive FPS):
GAME_PIN_CPUSET=1-3,16-19 MANGOHUD=1 game-run gamescope -f --adaptive-sync -- %command%
| Variable | Purpose | Example |
|---|---|---|
GAME_PIN_CPUSET | Override CPU cores | 1-3,16-19 |
GAME_RUN_USE_GAMEMODE | Toggle gamemode | 0 or 1 |
MANGOHUD | Performance overlay | 1 |
| ID | Name | Icon | Purpose |
|---|---|---|---|
| 1 | 𐌰:term | 💻 | Terminal |
| 2 | 𐌱:web | 🌐 | Web browsing |
| 3 | 𐌲:dev | 🔧 | Development |
| 4 | 𐌸:games | 🎮 | Gaming |
| 5 | 𐌳:doc | 📄 | Documents |
| 6 | 𐌵:vid | 📹 | Video |
| 7 | 𐌶:obs | 🎥 | OBS Studio |
| 8 | 𐌷:pic | 🖼️ | Pictures |
| 9 | 𐌺:vm | 💿 | Virtual Machines |
| 10 | 𐌻:wine | 🍷 | Wine/Proton |
| 12 | 𐌽:daw | 🎹 | DAW |
| 13 | 𐌾:dw | 📊 | Data/DWM |
| 14 | 𐌿:keyboard | ⌨️ | Keyboard tools |
| 15 | 𐍀:im | 💬 | Instant Messaging |
| 16 | 𐍁:remote | 🖥️ | Remote Desktop |
| 17 | Ⲣ:notes | 📝 | Notes |
| 18 | 𐍆:vital | 🎛️ | Vital synth |
| 19 | 𐍇:rack | 🧩 | VCV Rack |
Quick-access overlays for common applications:
| Scratchpad | App | Keybind | Size |
|---|---|---|---|
| 💬 im | Telegram | Super+E | 30% × full height (right edge) |
| 🎵 music | RMPC | Super+F | 70% × 40% |
| neomutt | — (class rule only) | 50% × 50% (centered) | |
| 🔊 mixer | ncpamixer | Super+Ctrl+P | 40% × full height (right edge) |
| ⬇️ torrment | Rustmission | Super+T | 98% × 40% (top-left) |
| 📊 teardown | btop | Super+D | 98% × 50% (top-left) |
| 🔒 vpn | tunnel status | Super+U | 50% × 30% (centered) |
| 🔁 rebuild | nh os switch | Super+Shift+N | 98% × 50% (top-left) |
Super+Shift+H hides all scratchpads. Every row mirrors the class match, bind and window rule in
files/gui/hypr/hyprland.lua; there is no Discord/Vesktop scratchpad.
30 Custom Packages tailored for productivity and performance:
Rust launcher wrapper in packages/game/:
game-run - CPU isolation wrapper with gamescope presetsrmpc - Modern MPD client (Rust)rustmission - Transmission TUItwo_percent - Optimized fuzzy finder (skim fork)duf - Better df with plain stylecomma - Nix ,command wrapperpretty_printer - CLI formatting utility[!NOTE] See
packages/for the complete list.
| Resource | Description |
|---|---|
| 📖 Docs index | Repo documentation entry point |
| 💬 Package Annotations | Inline comments | | 🔧 CI Scripts | Development tools |
[!IMPORTANT] This is a personal configuration, but contributions are welcome!
just check to verifynixfmt for formattingThis configuration is available under the MIT License.
Built with amazing open-source technologies
Special thanks to:
Last Updated: September 2026 • Version: 26.11 • Commits: 3200+
Made with ❤️ and ☕ by neg-serg
███╗ ██╗██╗██╗ ██╗ ██████╗ ███████╗ ██████╗ ██████╗ ███╗ ██╗███████╗██╗ ██████╗
████╗ ██║██║╚██╗██╔╝██╔═══██╗██╔════╝ ██╔════╝██╔═══██╗████╗ ██║██╔════╝██║██╔════╝
██╔██╗ ██║██║ ╚███╔╝ ██║ ██║███████╗ ██║ ██║ ██║██╔██╗ ██║█████╗ ██║██║ ███╗
██║╚██╗██║██║ ██╔██╗ ██║ ██║╚════██║ ██║ ██║ ██║██║╚██╗██║██╔══╝ ██║██║ ██║
██║ ╚████║██║██╔╝ ██╗╚██████╔╝███████║ ╚██████╗╚██████╔╝██║ ╚████║██║ ██║╚██████╔╝
╚═╝ ╚═══╝╚═╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═════╝
Performance-Tuned • Developer-Focused • Gaming-Optimized
[!TIP] New to NixOS? Check out the docs index for a comprehensive guide!
🎯 What makes this configuration special:
just lint) plus nix flake check -L; no CI service runs this repo# 1️⃣ Clone the repository
git clone https://github.com/neg-serg/nixos-config /etc/nixos
cd /etc/nixos
# 2️⃣ Build and switch (with flakes)
sudo nixos-rebuild switch --flake .#trantor
# 3️⃣ Or use the helper (if zcli is enabled)
nh os switch
[!NOTE] Replace
trantorwith your hostname if you're setting up a different machine.
| 📁 Category | 🔢 Count | 📊 Progress |
|---|---|---|
| Module Domains | 27 | |
| Nix Files | 502 | |
| Custom Packages | 107 | |
| Module Files | 319 |
| Total Commits | 3200+ | |
graph TB
subgraph "🎯 Entry Point"
A[flake.nix]
end
subgraph "🖥️ Host Configuration"
B[hosts/trantor]
end
subgraph "📦 System Modules"
C[modules/features]
D[modules/cli]
E[modules/dev]
F[modules/user]
G[modules/servers]
end
subgraph "👤 User Configuration"
H[modules/user/nix-maid]
I[Hyprland Config]
J[Quickshell Panel]
end
subgraph "🎁 Custom Packages"
K[packages/overlay]
L[Game Launchers]
M[Productivity Tools]
end
A --> B
B --> C
B --> D
B --> E
B --> F
B --> G
H --> I
H --> J
C -.feature flags.-> D
C -.feature flags.-> E
K --> L
K --> M
style A fill:#5277C3,color:#fff
style B fill:#00D9FF,color:#000
style H fill:#FF6B35,color:#fff
style K fill:#4CAF50,color:#fff
flowchart LR
A[📝 Edit Config] --> B{🔍 Pre-commit + flake check}
B -->|✅ Pass| C[🎨 Format]
B -->|❌ Fail| A
C --> D[🔎 Lint]
D --> E[🏗️ Build]
E --> F{🧪 Test}
F -->|✅| G[🚀 Deploy]
F -->|❌| A
style A fill:#5277C3,color:#fff
style G fill:#4CAF50,color:#fff
style B fill:#FF9800,color:#fff
style F fill:#FF9800,color:#fff
game (Rust): CPU isolation + gamescope presets[!TIP] Steam Launch Options Example:
GAME_PIN_CPUSET=1-3,16-19 MANGOHUD=1 game-run gamescope -f --adaptive-sync -- %command%
Languages & Tools:
[!NOTE] Enable/disable languages via feature flags, e.g.,
features.dev.rust.enable = true;
🎨 Hyprland - Dynamic tiling Wayland compositor
📐 19 Workspaces - Semantic routing (term, web, dev, games, etc.)
💾 8 Scratchpads - Telegram, Music, Mail, Mixer, Torrents, Teardown, VPN, Rebuild
🎛️ Quickshell Panel - Custom status bar with system info
📦 nixos-config/
├── 📄 flake.nix # 🎯 Flake entry point
├── 📂 hosts/ # 🖥️ Host configurations
│ └── 📁 trantor/ # Primary workstation
│ ├── hardware.nix
│ ├── networking.nix
│ └── services/ # policy.nix, vpn.nix, telegram-units.nix, telegram/*.py
├── 📂 modules/ # 🧩 System modules (27 domains)
│ ├── 📁 features/ # ⚙️ Feature flags (16 files)
│ │ ├── core.nix # Core feature options
│ │ ├── gui.nix # GUI stack options
│ │ ├── dev.nix # Development tools
│ │ └── ...
│ ├── 📁 cli/ # 💻 CLI tools (10 files)
│ │ ├── tools.nix # 28 packages
│ │ ├── dev.nix # Git, encoding, fetch
│ │ └── ...
│ ├── 📁 user/nix-maid/ # 👤 User configuration
│ │ ├── 📁 hyprland/ # 🌊 Hyprland (4 modules)
│ │ │ ├── main.nix
│ │ │ ├── environment.nix
│ │ │ ├── files.nix
│ │ │ ├── services.nix
│ │ │ └── ... # workspaces live in files/gui/hypr/hyprland.lua
│ │ └── ...
│ ├── 📁 servers/ # 🖧 Server services
│ └── ...
├── 📂 packages/ # 🎁 Custom overlays (30)
│ ├── game/
│ ├── rmpc/
│ └── ...
├── 📂 files/ # 📝 Config files
│ ├── 📁 gui/hypr/ # Hyprland configs
│ ├── 📁 quickshell/ # Panel configuration
├── 📂 scripts/dev/ # 🔧 Dev & CI scripts
├── 📂 docs/ # 📚 Documentation (index, howto/, runbook-*.md)
pie title Module Categories Distribution
"System (8)" : 8
"Desktop/GUI (12)" : 12
"Development (6)" : 6
"Web & Comm (4)" : 4
"Core (16)" : 16
"Servers (7)" : 7
"Other (9)" : 9
| Module | Description | Files |
|---|---|---|
| 🎛️ args | Module arguments & impurity | 1 |
| ⚙️ features | Feature flags system | 14 |
| 📚 neg | Custom library helpers | 2 |
| 👥 profiles | Service profiles | 5 |
🟢 Active Services:
| Service | Purpose |
|---|---|
| 🔒 adguardhome | DNS-level ad blocking |
| 📡 avahi | mDNS/DNS-SD |
| 🎵 mpd | Music Player Daemon |
| 🔑 openssh | Remote access |
# 🐚 Enter development shell with all tools
nix develop
# 🎨 Format all code (nixfmt/treefmt)
just fmt
# 🔍 Run all checks (format + lint + build)
just check
# 🏗️ Build without switching
nixos-rebuild build --flake .#trantor
# 🚀 Rebuild and switch
just deploy
# 🪝 Enable repo git hooks (lint + commit-msg scope check)
just hooks-enable
[!IMPORTANT] Changes are validated by the pre-commit hook (
just lint) andnix flake check -L
graph LR
A[📝 Commit] --> B[🎨 Format Check]
B --> C[🔎 Lint Check]
C --> D[🧪 Build Test]
D --> E[✅ NixOS Eval]
E --> F[🎯 Custom Checks]
F --> G{All Pass?}
G -->|Yes| H[✅ Success]
G -->|No| I[❌ Fail]
style A fill:#5277C3,color:#fff
style H fill:#4CAF50,color:#fff
style I fill:#f44336,color:#fff
Automated Checks:
[!TIP] Pro Tip: Reserve specific CPU cores for gaming to eliminate system interrupts!
graph TB
subgraph "🖥️ CPU Core Layout"
subgraph "🏠 Housekeeping Cores (24 threads)"
A[Core 4-15]
B[Core 20-31]
end
subgraph "🎮 Gaming Cores ISOLATED (8 threads)"
C[Core 1-3]
D[Core 16-19]
end
end
G[System Services] --> A
G --> B
H[🎮 Games] --> C
H --> D
style C fill:#4CAF50,color:#fff
style D fill:#4CAF50,color:#fff
style H fill:#FF6B35,color:#fff
# 🎯 Basic CPU pinning
game-run %command%
# 🖥️ With Gamescope (VRR + adaptive sync)
game-run gamescope -f --adaptive-sync -- %command%
# ⚡ Performance preset (low latency)
gamescope-perf %command%
# 🎨 Quality preset (visual fidelity)
gamescope-quality %command%
# 🌈 HDR support
gamescope-hdr %command%
[!NOTE] Steam Launch Options Example (Competitive FPS):
GAME_PIN_CPUSET=1-3,16-19 MANGOHUD=1 game-run gamescope -f --adaptive-sync -- %command%
| Variable | Purpose | Example |
|---|---|---|
GAME_PIN_CPUSET | Override CPU cores | 1-3,16-19 |
GAME_RUN_USE_GAMEMODE | Toggle gamemode | 0 or 1 |
MANGOHUD | Performance overlay | 1 |
| ID | Name | Icon | Purpose |
|---|---|---|---|
| 1 | 𐌰:term | 💻 | Terminal |
| 2 | 𐌱:web | 🌐 | Web browsing |
| 3 | 𐌲:dev | 🔧 | Development |
| 4 | 𐌸:games | 🎮 | Gaming |
| 5 | 𐌳:doc | 📄 | Documents |
| 6 | 𐌵:vid | 📹 | Video |
| 7 | 𐌶:obs | 🎥 | OBS Studio |
| 8 | 𐌷:pic | 🖼️ | Pictures |
| 9 | 𐌺:vm | 💿 | Virtual Machines |
| 10 | 𐌻:wine | 🍷 | Wine/Proton |
| 12 | 𐌽:daw | 🎹 | DAW |
| 13 | 𐌾:dw | 📊 | Data/DWM |
| 14 | 𐌿:keyboard | ⌨️ | Keyboard tools |
| 15 | 𐍀:im | 💬 | Instant Messaging |
| 16 | 𐍁:remote | 🖥️ | Remote Desktop |
| 17 | Ⲣ:notes | 📝 | Notes |
| 18 | 𐍆:vital | 🎛️ | Vital synth |
| 19 | 𐍇:rack | 🧩 | VCV Rack |
Quick-access overlays for common applications:
| Scratchpad | App | Keybind | Size |
|---|---|---|---|
| 💬 im | Telegram | Super+E | 30% × full height (right edge) |
| 🎵 music | RMPC | Super+F | 70% × 40% |
| neomutt | — (class rule only) | 50% × 50% (centered) | |
| 🔊 mixer | ncpamixer | Super+Ctrl+P | 40% × full height (right edge) |
| ⬇️ torrment | Rustmission | Super+T | 98% × 40% (top-left) |
| 📊 teardown | btop | Super+D | 98% × 50% (top-left) |
| 🔒 vpn | tunnel status | Super+U | 50% × 30% (centered) |
| 🔁 rebuild | nh os switch | Super+Shift+N | 98% × 50% (top-left) |
Super+Shift+H hides all scratchpads. Every row mirrors the class match, bind and window rule in
files/gui/hypr/hyprland.lua; there is no Discord/Vesktop scratchpad.
30 Custom Packages tailored for productivity and performance:
Rust launcher wrapper in packages/game/:
game-run - CPU isolation wrapper with gamescope presetsrmpc - Modern MPD client (Rust)rustmission - Transmission TUItwo_percent - Optimized fuzzy finder (skim fork)duf - Better df with plain stylecomma - Nix ,command wrapperpretty_printer - CLI formatting utility[!NOTE] See
packages/for the complete list.
| Resource | Description |
|---|---|
| 📖 Docs index | Repo documentation entry point |
| 💬 Package Annotations | Inline comments | | 🔧 CI Scripts | Development tools |
[!IMPORTANT] This is a personal configuration, but contributions are welcome!
just check to verifynixfmt for formattingThis configuration is available under the MIT License.
Built with amazing open-source technologies
Special thanks to:
Last Updated: September 2026 • Version: 26.11 • Commits: 3200+
Made with ❤️ and ☕ by neg-serg