Here's a quick and incomplete tour of what is going on in the repository:
Directory | Purpose |
---|---|
modules |
Stores NixOS and Home-manager modules. These are the main building block: Every system receives the options these declare. |
systems |
Stores NixOS system configurations. These are also often called hosts |
homes |
Stores Home-manager configurations, which are associated with a system |
lib |
A shared library of functions and variables, available everywhere in the flake at lib.mountainous.* |
packages |
Packages I could not find in nixpkgs , and packaged myself for use in this flake. |
shells |
Nix shells for bootstrapping, etc. |
Others are not as important. Snowfall Guide/Reference
This repository provides a set of convenient commands for managing the NixOS configurations. These commands are implemented using just
, a handy command runner. Here's a table of the available commands:
Command | Description |
---|---|
just |
Displays a list of available commands. |
just switch [HOST] [BUILD_HOST] |
Switches to the system configuration for the specified HOST . Optionally, you can provide a custom BUILD_HOST . If not provided, it defaults to the HOST . |
just build [HOST] |
Builds the system configuration for the specified HOST . |
just dry[-run] [HOST] |
Performs a dry run of the system configuration for the specified HOST . |
just evolve [ARGS] |
Updates the flake and switches to the new configuration. You can pass additional arguments to just switch using ARGS . |
just evolve-all [ARGS] |
Updates the flake and deploys the new configuration to all systems. |
just up [ARGS] |
Updates all flake inputs or specific inputs. You can specify the inputs to update using ARGS . |
just history |
Shows the system profile history. |
just repl |
Opens the Nix REPL with the nixpkgs flake. |
just clean |
Removes all system generations older than 7 days. |
just gc |
Garbage collects all unused Nix store entries. |
To use these commands, make sure you have just
installed on your system. Then, navigate to the root directory of this repository and run the desired command using just <command>
.
For example, to switch to the system configuration for a specific host, you can run:
just switch my-host