Home Manager is great,
but it's tedious to run home-manager edit,
add your package to the file,
and run home-manager switch
every time you want to install a package.
I wanted a workflow like Poetry,
where I could just add a package and install it in one command.
So, I made hdn.
You can call it with e.g. hdn add pkgs.hello pkgs.cowsay:
This adds pkgs.hello and pkgs.cowsay to the home.packages attribute in home.nix, and calls home-manager switch.
If home-manager switch fails, it will automatically roll back home.nix to its original state.
This program requires that:
- you have
home-mangeron your PATH home.nixlives in one of the default locations (namely,~/.config/home-manager/,~/.config/nixpkgs/,~/.nixpkgs/)home.nixcontains the attributehome.packages, the list of packages in the user environment
These requirements should be satisfied with the default home-manager installation.
Releases are available on crates.io.
cargo install hdnIf you don't want to use cargo to build from source,
you can download a pre-built binary from the Releases page (untested!).
This project was made possible by the work of others (that I stole legally incorporated).
I thank Victor Fuentes for his work on nix-editor; the code for nix parsing and writing comes from his project.
I thank Armin Ronacher for his work on similar;
the code that displays the home.nix diff comes from his project.