1.4 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	AGENTS.md - NixOS Configuration Repository
Build/Test Commands
# Validate configuration syntax
nix flake check
# Dry-run build for specific host (test without building)
nix build .#nixosConfigurations.<hostname>.config.system.build.toplevel --dry-run
# Test configuration without switching
sudo nixos-rebuild test --flake .
# Apply configuration changes
sudo nixos-rebuild switch --flake .#<hostname>
Code Style Guidelines
Language: Nix expression language
Formatting: Use 2-4 space indentation (varies by file), no tabs except in some user modules
Imports: Always import required modules at top: { config, lib, pkgs, ... }: or with additional args like inputs, outputs, system, timeZone
Naming: Use camelCase for options (userName, hostName, isDesktopUser), kebab-case for hostnames, underscores for module names (main_user)
Module Pattern: Define options with lib.mkOption, use lib.mkIf for conditional config, use lib.mkMerge for combining attribute sets
Error Handling: Rely on Nix's built-in evaluation errors; use lib.mkEnableOption for optional features
Types: Specify types in options: lib.types.str, lib.types.bool, provide defaults and descriptions for all options
Comments: Minimal comments; prefer self-documenting option descriptions; hardware files auto-generated with warnings at top