Skip to content
/ unvX Public

unvX is a Home Manager configuration that uses Nix flakes to install software and manage dotfiles, using symlinks for immediate feedback on changes.

License

Notifications You must be signed in to change notification settings

pabroux/unvX

Repository files navigation

A simple Home Manager configuration

License Badge

About

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.

Table of contents

Requirements

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.

Install

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.

Usage

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

Structure

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 the module 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 the unvX 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.

Resources

Useful resources to learn Nix:

About

unvX is a Home Manager configuration that uses Nix flakes to install software and manage dotfiles, using symlinks for immediate feedback on changes.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published