| Crates.io | npingler |
| lib.rs | npingler |
| version | 0.5.0 |
| created_at | 2025-09-29 23:12:27.859921+00 |
| updated_at | 2025-12-11 01:26:01.993616+00 |
| description | A Nix profile manager for use with npins |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1860372 |
| size | 122,918 |
npingler is a Nix profile manager intended for use with npins. A
non-trivial implementation of @lf-'s flakey-profile, split
off of my earlier (Flake-based) home-mangler.
npingler is configured with a Nix expression in ~/.config/npingler/default.nix:
let
npins-sources = import ./npins;
pkgs = import npins-sources.nixpkgs {
overlays = [
(final: prev: {
inherit npins-sources;
npingler-lib = final.callPackage "${npins-sources.npingler}/lib" { };
})
];
};
in
{
npingler = {
# By default, npingler uses the attr matching your hostname.
grandiflora = pkgs.npingler-lib.makeProfile {
pins = {
# A map of names to `source` derivations. These get pinned in the `nix
# registry` so that (e.g.) `nix repl nixpkgs` uses the same version of
# `nixpkgs` as your profile, and also in your Nix channels, so that
# `nix-shell -p hello` uses the same version as well.
nixpkgs = npins-sources.nixpkgs;
};
# Install `git` in your profile:
paths = [
pkgs.git
];
};
};
}
Switch to the new configuration with npingler switch. Use --dry-run for a preview.
Note that with flake-compat, you can use npingler with a
Flake-based setup (although the npingler update command won't do anything).