Linux ModulesΒΆ
This directory contains configuration modules specific to Linux. It builds on top of the shared files, packages, and programs found in modules/shared/
.
LayoutΒΆ
.
βββ files.nix # Non-Nix, static configuration files (immutable by default, option for mutable)
βββ home-manager.nix # Defines user programs
βββ packages.nix # List of packages to install for Linux
DetailsΒΆ
The core of your Linux configuration is defined here.
In
files.nix
, you specify files that should be pre-created or symlinked. By default, files are immutable to guarantee reproducibility, but if you require some files to be mutable (such as VSCode keybindings), this is possible thanks tomodules/shared/mutable.nix
.In
packages.nix
, you define any packages that are specific to Linux.home-manager.nix
is where the main configuration is assembled.files.nix
andpackages.nix
are imported here.Programs are also defined here. If you have any Linux-specific programs whose settings need to be configured, you should do so at this line. For example, you may want to enable
vscode
. This is not necessary for Darwin, as it is already available viacasks
, but it is required for Ubuntu.Any specific options for
home-manager
can be found on the Home Manager Option Search.