rutrum / dots

My home manager configuration.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

My Home-Manager Configuration

My dotfiles are managed using Home Manager. All my computers run Home Manager using nix to specify my configuration files and installed user-space tools and applications. Similarly, my linux machines run NixOS, an operating whose configuration is built on nix. NixOS manages system configuration, like hardware drivers, firewall rules, systemd units, file systems, and desktop environments.

Together, these tools entirely define my home (and soon cloud) infrastructure and user-space configuration and tools.

Starting From Scratch

NixOS

On a new NixOS installation, run this from the home directory.

nix-shell -p git
git clone git@github.com:rutrum/dots.git
cd ~/dots
nixos-rebuild switch --extra-experimental-features flakes \
    --extra-experimental-features nix-command switch --flake .#<host>

Home Manager

In any linux environment with nix installed, run the following from the home directory.

nix-shell -p git home-manager
git clone git@github.com:rutrum/dots.git
cd ~/dots
home-manager --extra-experimental-features flakes \
    --extra-experimental-features nix-command switch --flake .#rutrum

Then run snrs to load the system configuration or run hms to reload the home-manager configuration.

Directory Structure

  • hosts: machine specific NixOS configurations
  • hosts/modules: NixOS modules
  • users: user/machine specific home-manager configurations
  • users/modules: home-manager modules

The modules are not polished, nor meant for external use. They are simply used to break up parts of my configuration and share between hosts and users.

Hosts and Users

I manage a few host machines on my home network:

  • rumtower: my gaming and main productivity rig
  • rumprism: my laptop for light productivity work
  • rumnas: my home NAS and server
  • rumpi: my Raspberry Pi 4

Similarly, home-manager configurations:

  • rutrum@rumtower
  • rutrum@rumprism
  • rutrum@rumnas
  • rutrum: for every other system, including non-nixos systems, like my work laptop running Windows with WSL

About

My home manager configuration.


Languages

Language:Nix 95.8%Language:Haskell 2.7%Language:Lua 1.5%