Add etc/nixos/README.md

Added readme
This commit is contained in:
nicole 2025-11-17 16:01:08 +00:00
parent 63af29b6e6
commit 61d35b78a0

25
etc/nixos/README.md Normal file
View file

@ -0,0 +1,25 @@
## Key Files
**flake.nix** serves as the entry point, defining two package channels (stable NixOS 25.05 and unstable) and importing external flakes for the Niri window manager, Flatpak support, gaming tools, and other specialized software. It exports a single NixOS configuration for the x86_64-linux system.
**configuration.nix** is the heart of the system configuration, orchestrating all modules and setting core parameters like hostname, timezone, locale, and kernel options. It includes kernel tuning for performance, enables essential services (NetworkManager, PipeWire, Avahi), and configures user accounts with proper group memberships.
**cachix.nix** implements a dynamic import system for binary cache configurations. It automatically discovers and loads all .nix files from the cachix subdirectory, ensuring efficient package downloads while maintaining a clean separation of cache definitions.
## Module Organization
The **modules/** directory contains specialized configurations that group related functionality:
- **hardware-configuration.nix** contains hardware-specific settings automatically generated by NixOS
- **desktop.nix** configures the Niri tiling window manager by default and GDM as display manager. More DE and WM are present but commented out. If you wish to use them, just uncomment them and rebuild.
- **nvidia.nix** The magic file for Nvidia GPUs. Remove it from the imports if you're on AMD
- **virtualization.nix** enables KVM and libvirt for virtual machines with proper user permissions. This file is very specific for enabling iGPU passthrough of a Ryzen 7 9700x.
- **programs.nix** this is where I've put 99% of my programs.
- **bluetooth.nix** configures BlueZ and Blueman for wireless device management
- **ld-fix.nix** contains dynamic linker workarounds for specific applications
## Additional Components
The **modules/pkgs/** subdirectory houses custom package definitions that override or extend the official Nixpkgs collection, providing access to software not yet in stable channels or with custom modifications.
**cachix/** contains binary cache configurations that speed up package installation by providing pre-built binaries from community caches like nix-community.