nixdotfiles/etc/nixos
2025-11-17 16:01:08 +00:00
..
cachix Added cachix. I'm tired of compiling CUDA 2025-11-04 21:30:41 +01:00
modules Update 2025-11-17 15:31:30 +01:00
cachix.nix Added cachix. I'm tired of compiling CUDA 2025-11-04 21:30:41 +01:00
configuration.nix Update 2025-11-17 15:31:30 +01:00
flake.lock Update 2025-11-17 15:31:30 +01:00
flake.nix Update 2025-11-17 15:31:30 +01:00
README.md Add etc/nixos/README.md 2025-11-17 16:01:08 +00:00

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.