I use home-manager for my dotfiles, and they manage quite a few things.
For example:
1. My editor config (neovim) including downloading and installing all my plugins, including the dependencies of the plugins (including deno, rust-analyzer, clippy, etc)
2. All the other tools I use, like ripgrep, python, and so on, including installing the same version on every machine I've got.
3. A bunch of misc programs and scripts I've written for myself, including all their dependencies
4. All the xdg configuration to open http links in the right browser profile, pdfs in evince, etc, as well as all the programs needed for that
5. systemd user units to run various daemons, like syncthing to sync some documents between computers, gpg-agent, etc etc.
And this works on all machines running any linux distro, from arch linux to nixos to ubuntu.
home-manager is just another dotfile manager, but since nix makes packages isolated, such that my user version of $pkg doesn't conflict or depend on the host version, home-manaer can also safely manage applications I run, like my editor, browser, developer tools, systemd units, etc etc etc.
I agree that most dotfile managers are weird overengineered projects that could have been a short shell script.
I think nix+home-manager is a weird overengineered project that could not have been a shell script.
For example:
1. My editor config (neovim) including downloading and installing all my plugins, including the dependencies of the plugins (including deno, rust-analyzer, clippy, etc)
2. All the other tools I use, like ripgrep, python, and so on, including installing the same version on every machine I've got.
3. A bunch of misc programs and scripts I've written for myself, including all their dependencies
4. All the xdg configuration to open http links in the right browser profile, pdfs in evince, etc, as well as all the programs needed for that
5. systemd user units to run various daemons, like syncthing to sync some documents between computers, gpg-agent, etc etc.
And this works on all machines running any linux distro, from arch linux to nixos to ubuntu.
home-manager is just another dotfile manager, but since nix makes packages isolated, such that my user version of $pkg doesn't conflict or depend on the host version, home-manaer can also safely manage applications I run, like my editor, browser, developer tools, systemd units, etc etc etc.
I agree that most dotfile managers are weird overengineered projects that could have been a short shell script.
I think nix+home-manager is a weird overengineered project that could not have been a shell script.