also update overrides docs it is a pure devos overlay now, it makes sense to go in overlays
1.1 KiB
Overrides
Each NixOS host follows one channel. But many times it is useful to get packages or modules from different channels.
Packages
You can make use of overlays/overrides.nix
to override specific packages in the
default channel to be pulled from other channels. That file is simply an example
of how any overlay can get channels
as their first argument.
You can add overlays to any channel to override packages from other channels.
Pulling the manix package from the latest
channel:
channels: final: prev: {
inherit (pkgs.latest) manix;
}
Modules
You can also pull modules from other channels. All modules have access to the
modulesPath
for each channel as <channelName>ModulesPath
. And you can use
disabledModules
to remove modules from the current channel.
Pulling the zsh module from the latest
channel:
{ latestModulesPath }: {
modules = [ "${latestModulesPath}/programs/zsh/zsh.nix" ];
disabledModules = [ "programs/zsh/zsh.nix" ];
}
Note:
Sometimes a modules name will change from one branch to another.