mirror of
https://github.com/nix-community/home-manager
synced 2024-11-23 03:29:45 +01:00
parent
8571e568e0
commit
f080f29292
1 changed files with 47 additions and 0 deletions
47
FAQ.md
47
FAQ.md
|
@ -149,3 +149,50 @@ in
|
|||
should work provided you have a Nix channel called `nixpkgs-unstable`.
|
||||
Note, the package will not be affected by any package overrides,
|
||||
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