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-manger
on your PATH home.nix
lives in one of the default locations (namely,~/.config/home-manager/
,~/.config/nixpkgs/
,~/.nixpkgs/
)home.nix
contains 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 hdn
If 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.