parent
8571e568e0
commit
f080f29292
47
FAQ.md
47
FAQ.md
|
@ -149,3 +149,50 @@ in
|
||||||
should work provided you have a Nix channel called `nixpkgs-unstable`.
|
should work provided you have a Nix channel called `nixpkgs-unstable`.
|
||||||
Note, the package will not be affected by any package overrides,
|
Note, the package will not be affected by any package overrides,
|
||||||
overlays, etc.
|
overlays, etc.
|
||||||
|
|
||||||
|
How do I override the package used by a module?
|
||||||
|
-----------------------------------------------
|
||||||
|
|
||||||
|
By default Home Manager will install the package provided by your
|
||||||
|
chosen `nixpkgs` channel but occasionally you might end up needing to
|
||||||
|
change this package. This can typically be done in two ways.
|
||||||
|
|
||||||
|
1. If the module provides a `package` option, such as
|
||||||
|
`programs.beets.package`, then this is the recommended way to
|
||||||
|
perform the override. For example,
|
||||||
|
|
||||||
|
```
|
||||||
|
programs.beets.package = pkgs.beets.override { enableCheck = true; };
|
||||||
|
```
|
||||||
|
|
||||||
|
2. If no `package` option is available, then you can typically
|
||||||
|
override the relevant package using an [overlay][nixpkgs-overlays].
|
||||||
|
|
||||||
|
For example, if you want to use the `programs.skim` module but use
|
||||||
|
the `skim` package from Nixpkgs unstable, then a configuration like
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{ pkgs, config, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
pkgsUnstable = import <nixpkgs-unstable> {};
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.skim.enable = true;
|
||||||
|
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
(self: super: {
|
||||||
|
skim = pkgsUnstable.skim;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
# …
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
should work OK.
|
||||||
|
|
||||||
|
[nixpkgs-overlays]: https://nixos.org/nixpkgs/manual/#chap-overlays
|
||||||
|
|
Loading…
Reference in a new issue