seasonedfish / hdn

Install a package with e.g. `hdn add pkgs.hello`.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

hdn: utility for updating home.nix

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:

image

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.

Requirements

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 attribute home.packages, the list of packages in the user environment

These requirements should be satisfied with the default home-manager installation.

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!).

Acknowledgements

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.

About

Install a package with e.g. `hdn add pkgs.hello`.

License:BSD 2-Clause "Simplified" License


Languages

Language:Rust 100.0%