nixos-config/system
2024-04-04 04:12:33 -05:00
..
app Docker automatically selects storage driver 2024-03-24 10:14:15 -05:00
hardware Opting for performance while on battery 2024-04-01 21:10:08 -05:00
security Fixed typos, added autoinstall notes, reworked homelab config 2024-02-28 17:39:00 -06:00
style Optimized some specialArgs and module argument use 2024-01-18 15:36:52 -06:00
wm Hyprland conf improvements (mainly hyprlock + hypridle) 2024-04-04 04:12:33 -05:00
hardware-configuration.nix Experimenting with graphics drivers 2024-04-01 12:41:51 -05:00
README.org Boilerplate reduction (I understand strings in nix now!) 2023-06-22 14:53:10 -05:00

System-level Nix Modules

Separate Nix files can be imported as modules using an import block:

imports = [ import1.nix
            import2.nix
            ...
          ];

My system-level Nix modules are organized into this directory:

  • hardware-configuration - Default hardware config generated for my system
  • app - Necessary system-level configuration to get various apps working
  • hardware - Hardware configurations I may need to use
  • security - System-level security stuff
  • style - Stylix setup (system-wide base16 theme generation)
  • wm - Necessary system-level configuration to get various window managers, wayland compositors, and/or desktop environments working

Variables imported from flake.nix

Variables can be imported from flake.nix by setting the specialArgs block inside the flake (see my flake for more details). This allows variables to merely be managed in one place (flake.nix) rather than having to manage them in multiple locations.

I currently import the following variables to the system config:

  • username - Username
  • hostname - Hostname for machine
  • timezone - Timezone for machine
  • locale - Locale for machine
  • theme - base16 theme stored in ../themes to be used
  • backgroundUrl - Direct link to background wallpaper (used for login screen)
  • backgroundSha256 - Checksum for background image used when downloading