system

Nix (home-manager) configurations for my computers

pocka/system

My systems configuration using Nix/Home Manager.

Screenshot of the configured Wayland desktop

Usage

See outputs.homeConfigurations section in flake.nix for available <name>s.

Local install

  1. Clone or Download the repository
  2. Run nix-shell
  3. Inside the spawned shell, run home-manager switch --flake .#<name>
  4. Exit the shell

Without interactive Bash session: nix-shell --run "home-manager switch --flake .#<name>".

Remote install

This is handy and useful especially for initial bootstrap, but less reproducible compared to local installation.

  1. Make sure Flakes is available on your system
  2. Run nix run home-manager/master -- switch --flake github:pocka/system#<name>

Display changes between Home Manager generations

First, find the directory that contains Nix profiles. For defaults location, see this page: https://nix.dev/manual/nix/2.18/command-ref/files/profiles.

Then, run nix profile diff-closures --profile <profiles directory>/home-manager.

Requirements

dev-linux

Due to each softwares' design limitation, the system needs to have these packages.

A custom Swaybar module assumes Markdown file placed at $XDG_DATA_HOME/todo.md. Create a symbolic link or normal file there (module tries to read in 10s interval if the file does not exist.)

Programs

hm-clean

hm-clean removes obsolete Home Manager generations.

# Clean obsolete home-manager generations.
hm-clean

# with verbose logging.
hm-clean --verbose

License

This project is compliant with REUSE specification. Commentable files have copyright and license header and uncommentable files (e.g. binary, JSON) have an adjacent text file named <filename>.license.