nixos-config/modules/system
2025-02-23 15:07:23 -06:00
..
bluetooth Major config overhaul: use custom modules, setup for multi-host config, and less boilerplate 2025-02-09 16:50:26 -06:00
flatpak Major config overhaul: use custom modules, setup for multi-host config, and less boilerplate 2025-02-09 16:50:26 -06:00
gaming Major config overhaul: use custom modules, setup for multi-host config, and less boilerplate 2025-02-09 16:50:26 -06:00
hyprland Major config overhaul: use custom modules, setup for multi-host config, and less boilerplate 2025-02-09 16:50:26 -06:00
kernel cachy scheduler 2025-02-18 20:37:56 -06:00
nix Major update to handle multiple systems 2025-02-12 14:12:11 -06:00
overlays home manager uses global packages 2025-02-18 20:37:23 -06:00
phoenix Rewrote phoenix script 2025-02-23 15:07:23 -06:00
plasma some plasma fixes 2025-02-12 20:18:05 -06:00
printing Major config overhaul: use custom modules, setup for multi-host config, and less boilerplate 2025-02-09 16:50:26 -06:00
security Major config overhaul: use custom modules, setup for multi-host config, and less boilerplate 2025-02-09 16:50:26 -06:00
stylix Major config overhaul: use custom modules, setup for multi-host config, and less boilerplate 2025-02-09 16:50:26 -06:00
tlp Better tlp settings? 2025-02-18 20:37:44 -06:00
users Major update to handle multiple systems 2025-02-12 14:12:11 -06:00
virtualization Major config overhaul: use custom modules, setup for multi-host config, and less boilerplate 2025-02-09 16:50:26 -06:00
configuration.nix Major config overhaul: use custom modules, setup for multi-host config, and less boilerplate 2025-02-09 16:50:26 -06:00
default.nix Major config overhaul: use custom modules, setup for multi-host config, and less boilerplate 2025-02-09 16:50:26 -06:00
README.org Major config overhaul: use custom modules, setup for multi-host config, and less boilerplate 2025-02-09 16:50:26 -06: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
  • bin - My own scripts

  • 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 use this to pass a few attribute sets:

  • userSettings - Settings for the normal user (see flake.nix for more details)
  • systemSettings - Settings for the system (see flake.nix for more details)
  • inputs - Flake inputs (see flake.nix for more details)
  • pkgs-stable - Allows me to include stable versions of packages along with (my default) unstable versions of packages