flake.nix: Entry point for the Nix flake, sets up Home Manager and imports your config.home.nix: Main Home Manager config. Imports all modules, sets packages, dconf, and state version.modules/: Modular configs for each tool (zsh, tmux, git, nvim, alacritty, fonts, git-templates).dotfiles/: Your original dotfiles, now managed by Nix.fonts/: JetBrainsMono Nerd Font (place font files here if not managed by Nix).
sh <(curl -L https://nixos.org/nix/install) --daemonAdd this to ~/.config/nix/nix.conf:
experimental-features = nix-command flakes
nix build .#homeConfigurations.pablo.activationPackagenix run .#homeConfigurations.pablo.activationPackage -- dry-activatenix run .#homeConfigurations.pablo.activationPackage -- switch- Add/Remove Packages: Edit
home.packagesinhome.nix. - Add/Remove Modules: Edit the
importslist inhome.nix. - Edit Tool Configs: Edit the corresponding file in
modules/. - Add GNOME/desktop settings: Extend the
dconf.settingsattribute inhome.nix.
- Fonts: Place JetBrainsMono Nerd Font files in
fonts/JetBrainsMono-NFif not managed by Nix. - Some settings (like
gh auth login) require manual steps for secrets. - For Docker, enable via your system config if needed (not user-level).
Test with nix build and dry-activate before switching!
For more info, see the Home Manager manual and NixOS Flakes documentation.