1
0
Fork 0
dotfiles/README.md
2026-02-12 09:02:09 +01:00

1.4 KiB

dots

This repository contains my dotfiles and a Nix flake that supports multiple hosts (machines) with a shared base and per-host configuration.

Nix Configuration

The Nix configuration is located in the nix/ directory. It uses a shared Home Manager configuration for all hosts, while allowing host-specific NixOS or package settings.

Structure

  • nix/flake.nix: Entry point, defines hosts and helpers.
  • nix/home/: Shared Home Manager configuration (packages, shell, GNOME settings).
  • nix/hosts/: Host-specific NixOS configurations.

Adding New Hosts

NixOS Hosts

  1. Create a directory in nix/hosts/<hostname>/.
  2. Add configuration.nix, hardware-configuration.nix, and packages.nix there.
  3. Add the host to nixosConfigurations in nix/flake.nix:
    limgrave = mkNixos "limgrave" [
      nix-snapd.nixosModules.default
      autofirma-nix.nixosModules.default
    ];
    

Non-NixOS Hosts (e.g., Ubuntu)

  1. Add the host to homeConfigurations in nix/flake.nix:
    "catalin@ubuntu" = mkHome "ubuntu" "catalin" [ ];
    
    Note: mkHome takes hostname, username, and additional modules.

Building and Applying

NixOS

Run from the root of the repository:

sudo nixos-rebuild switch --flake .#hostname

Non-NixOS (Home Manager)

Run from the root of the repository:

home-manager switch --flake ./nix#user@hostname