A simple Home Manager configuration
unvX is a standalone Home Manager configuration using pure Nix flakes to install software and manage dotfiles. It employs symlinks for dotfile management, allowing immediate feedback on any change made.
Important
unvX serves as a source of inspiration.
To use unvX, you will need:
- Nix with the Nix flake experimental feature enabled.
Tip
Use the Nix installer by Determinate Systems to install Nix with the Nix flake feature enabled.
To install, use the following command inside the unvX folder:
./install
Note
This command will do three things:
- Configure your Git Hooks to invoke pre-commit using Nix;
- Generate a
unvX.nix
file; - Link the Home Manager flakes regardless of the location of your unvX folder.
For first-time installation, call the following command:
nix run home-manager -- switch
Note
This will make the home-manager
command available system-wide and apply the Home Manager profile matching your machine.
Otherwise, as any Home Manager configuration, call the following command to apply the Home Manager profile matching your machine:
home-manager switch
Here is a brief description of the structure:
flake.nix
: Entrypoint for profiles and Home Manager configurations. Home Manager will by default match first a$USER@$(hostname)
profile. If not found, it will then default to a$USER
profile;host
: Home Manager configurations for specific machines and users, specifying which Nix module in themodule
folder to use;module
: Nix modules dedicated to a specific software. These modules handle both the installation and configuration of the software and its extensions;unvX.nix
: Generated during the installation, a file that contains information about your unvX installation, such as the unvX location on your host machine. The content of that file is configured to be read by Home Manager and to be passed into all your Nix module under theunvX
attribute name.unvX.nix
is mainly used to symlink your dotfiles.
Note
Since Homebrew is better suited to install applications for macOS (e.g. Raycast), a homebrew
Nix module using it behind the scenes is available in the module
folder. Thus, you don't have to worry about managing two commands to update everything. If you plan to use the homebrew
Nix module, make sure to have Homebrew installed.
Useful resources to learn Nix: