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.nixis where the main configuration is assembled.files.nixandpackages.nixare 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-managercan be found on the Home Manager Option Search.