/system

My system configuration, dotfiles (Nix + Home Manager)

Primary LanguageNixApache License 2.0Apache-2.0

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.

  • sway ... The one installed using Nix does not launch.
  • pantheon-polkit-agent ... The one installed installed using Nix cannot lookup polkit-agent-helper-1.

Programs

specialisation

specialisation activates the given Home Manager specialisation.

# Switch to dark mode
specialisation set dark

# Switch to light mode
specialisation set light

# Switch to non-specialised profile
specialisation unset

# Clean obsolete home-manager generations
specialisation clean

License

Apache-2.0