1.4 KiB
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
- Create a directory in
nix/hosts/<hostname>/. - Add
configuration.nix,hardware-configuration.nix, andpackages.nixthere. - Add the host to
nixosConfigurationsinnix/flake.nix:limgrave = mkNixos "limgrave" [ nix-snapd.nixosModules.default autofirma-nix.nixosModules.default ];
Non-NixOS Hosts (e.g., Ubuntu)
- Add the host to
homeConfigurationsinnix/flake.nix:
Note:"catalin@ubuntu" = mkHome "ubuntu" "catalin" [ ];mkHometakeshostname,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