commits
Move fastfetch and starship configurations to separate config files
(fastfetch.jsonc and starship.toml) and reference them in Nix modules
using .source and lib.importTOML respectively.
Restructure configuration following NixOS best practices:
- Create hosts/ directory for multi-system support
- Move configuration.nix to hosts/laptop/default.nix
- Move hardware-configuration.nix to hosts/laptop/
- Add hosts/README.md with templates for adding new hosts
- Refactor packages to use declarative options
- Use programs.firefox.enable instead of systemPackages
- Use programs.git.enable for better integration
- Keep systemPackages only for programs without options
- Better separation of concerns in modules/packages.nix
- Update flake.nix to reference hosts directory
- Add commented example for future hosts
- Simplify module imports
- Improve documentation
- Add "Architecture" section explaining hosts structure
- Document options vs systemPackages best practices
- Add multi-host setup guide
- Update all command examples to use new structure
Benefits:
- Easier to manage multiple machines
- More idiomatic and declarative NixOS configuration
- Better integration with system services
- Clear separation between host-specific and shared config
Implements recommendations for production-ready NixOS setup.
- Replace manual path MAPPINGS with dynamic discovery via `dconf dump /`
- Implement automatic directory structure generation based on dconf paths
- Add logic to strip common prefixes (/org/gnome, /org/gtk) for cleaner nesting
- Ensure strict trailing/leading slash compliance for dconf commands
- Add a self-cleaning step to remove stale .nix files before export
- Improve fallback handling for complex data types and root-level settings
- Add Tailscale VPN service
- Add 6 Nerd Fonts including RobotoMono for terminal
- Configure GNOME Terminal with RobotoMono Nerd Font and dark theme
- Refactor GNOME settings into modular structure in settings/gnome/
- Fix dconf paths and make wallpaper paths portable
- Add dconf2nix for future settings exports
- Add documentation for modular settings structure
Restructure configuration following NixOS best practices:
- Create hosts/ directory for multi-system support
- Move configuration.nix to hosts/laptop/default.nix
- Move hardware-configuration.nix to hosts/laptop/
- Add hosts/README.md with templates for adding new hosts
- Refactor packages to use declarative options
- Use programs.firefox.enable instead of systemPackages
- Use programs.git.enable for better integration
- Keep systemPackages only for programs without options
- Better separation of concerns in modules/packages.nix
- Update flake.nix to reference hosts directory
- Add commented example for future hosts
- Simplify module imports
- Improve documentation
- Add "Architecture" section explaining hosts structure
- Document options vs systemPackages best practices
- Add multi-host setup guide
- Update all command examples to use new structure
Benefits:
- Easier to manage multiple machines
- More idiomatic and declarative NixOS configuration
- Better integration with system services
- Clear separation between host-specific and shared config
Implements recommendations for production-ready NixOS setup.
- Replace manual path MAPPINGS with dynamic discovery via `dconf dump /`
- Implement automatic directory structure generation based on dconf paths
- Add logic to strip common prefixes (/org/gnome, /org/gtk) for cleaner nesting
- Ensure strict trailing/leading slash compliance for dconf commands
- Add a self-cleaning step to remove stale .nix files before export
- Improve fallback handling for complex data types and root-level settings
- Add Tailscale VPN service
- Add 6 Nerd Fonts including RobotoMono for terminal
- Configure GNOME Terminal with RobotoMono Nerd Font and dark theme
- Refactor GNOME settings into modular structure in settings/gnome/
- Fix dconf paths and make wallpaper paths portable
- Add dconf2nix for future settings exports
- Add documentation for modular settings structure