mirror of
https://github.com/librephoenix/nixos-config
synced 2025-01-18 22:55:52 +05:30
30 lines
1.7 KiB
Org Mode
30 lines
1.7 KiB
Org Mode
#+title: System-level Nix Modules
|
|
#+author: Emmet
|
|
|
|
Separate Nix files can be imported as modules using an import block:
|
|
#+BEGIN_SRC nix
|
|
imports = [ import1.nix
|
|
import2.nix
|
|
...
|
|
];
|
|
#+END_SRC
|
|
|
|
My system-level Nix modules are organized into this directory:
|
|
- [[./hardware-configuration.nix][hardware-configuration]] - Default hardware config generated for my system
|
|
- [[./bin][bin]] - My own scripts
|
|
- [[./bin/phoenix.nix][phoenix]] - My nix command wrapper
|
|
- [[./app][app]] - Necessary system-level configuration to get various apps working
|
|
- [[./hardware][hardware]] - Hardware configurations I may need to use
|
|
- [[./security][security]] - System-level security stuff
|
|
- [[./style][style]] - Stylix setup (system-wide base16 theme generation)
|
|
- [[./wm][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][flake.nix]] by setting the =specialArgs= block inside the flake (see [[../flake.nix][my flake]] for more details). This allows variables to merely be managed in one place ([[../flake.nix][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][flake.nix]] for more details)
|
|
- =systemSettings= - Settings for the system (see [[../flake.nix][flake.nix]] for more details)
|
|
- =inputs= - Flake inputs (see [[../flake.nix][flake.nix]] for more details)
|
|
- =pkgs-stable= - Allows me to include stable versions of packages along with (my default) unstable versions of packages
|