- Nix 64.3%
- Lua 20.5%
- Rust 6.9%
- Shell 3.8%
- CSS 3%
- Other 1.5%
| images | ||
| secrets | ||
| system | ||
| toolbox | ||
| userspace | ||
| .gitignore | ||
| .sops.yaml | ||
| flake.lock | ||
| flake.nix | ||
| justfile | ||
| keys.nix | ||
| readme.md | ||
NixOS and Home Manager
My NixOS and Home Manager Configurations deployed as a flake.
Homepage
·
Forums
·
Nixpkgs
Repository Structure
This repository uses a modular, role-based configuration system:
System Configuration (/system)
system/
├── profiles/ # Role-based system profiles
│ ├── base.nix # Base system (Nix settings, core packages)
│ ├── desktop.nix # Desktop systems
│ └── laptop.nix # Laptop systems (desktop + power management)
├── modules/ # Modular system components
│ ├── desktop/ # Desktop environments (GNOME, COSMIC)
│ ├── services/ # System services (audio, docker, gaming, etc.)
│ ├── hardware/ # Hardware support (tablet, power)
│ ├── work/ # Work-specific (SentinelOne, SRAM udev rules)
│ └── localization/ # i18n modules
└── hosts/ # Host-specific configurations
├── hal9000/ # Each host has its own directory
├── marvin/
└── ...
User Configuration (/userspace)
userspace/
├── modules/ # User-level modules
├── users/ # User-specific configs (ajlow, alowry)
└── dotfiles/ # Configuration files
Module System
Modules use namespaced options for clarity:
- System profiles:
profiles.system.{base,desktop,laptop} - System modules:
modules.{desktop,services,hardware,work}.{name} - Example:
modules.services.gaming.enable = true;
Adding a New Host
See system/hosts/readme.md for instructions on adding a new host.
Usage
Warning
This is stale and pending changes as Im exploring an in config installer
Installation
Official installation instructions can be found in the NixOS Wiki or the Home Manager community docs.
I deploy my HM configuration as a flake which needs be enabled.
For standalone personal computers, I enable this via a nixos
option nix.settings.experimental-features = [ "nix-command" "flakes" ];.
If running Home Manager on top of another distro, I enable this
via a nix config file:
# ~/.config/nix/nix.conf
experimental-features = nix-command flakes
Nix Flakes documentation if needed.
Post garbage collection fix for win11 vm
https://crescentro.se/posts/windows-vm-nixos/
nix eval nixpkgs#qemu.outPath
virsh edit win11