I’m trying to get a newer version of the notion window manager from the unstable channel on my NixOS 17.03 system. The current stable version is pretty old and I need the latest features.
I’ve configured package overrides to pull from unstable like this:
nixpkgs.config = {
allowUnfree = true;
packageOverrides = let unstablePkgs = import (
fetchTarball https://github.com/NixOS/nixpkgs-channels/archive/nixos-unstable.tar.gz
) { }; in currentPkgs:
rec {
intellij = unstablePkgs.intellij;
notion = unstablePkgs.notion;
};
};
Additionally, I included notion in my system packages and activated the window manager service with services.xserver.windowManager.notion.enable = true.
The strange part is that other packages like intellij update perfectly from unstable, but when I check the version of notion using notion -version, it displays 3-2015061300, while I expected 3-2017050501 from unstable.
What could be the issue? Why isn’t the override for notion working when the others do?
This is a common gotcha with NixOS service modules. The notion service module has its own package reference that doesn’t automatically pull from your packageOverrides. I hit the same thing when overriding dwm through packageOverrides - the xserver service kept using the stable version. You need to explicitly set the package parameter for the service itself. Your packageOverrides work fine for regular packages, but system services need to be told directly which package to use. After adding the package parameter to your notion service config, do a full system rebuild instead of just switching. Window manager changes sometimes need the full rebuild to work properly.
NixOS system services ignore your packageOverrides and pull from the system channel instead. When you enable services.xserver.windowManager.notion.enable, it’s not using your override. You need to explicitly tell the service which package to use. Add this to your configuration.nix: services.xserver.windowManager.notion.package = pkgs.notion; This forces the service to use your overridden notion package instead of the stable default. I’ve hit this same issue with other system services - they don’t respect packageOverrides unless you explicitly point them to the right package. Rebuild your system after adding that line and the version should match your unstable override.
yeah, i think the windowManager might be defaulting to its own notion package. try adding services.xserver.windowManager.notion.package = pkgs.notion; to make sure it uses your overridden version. sometimes those service definitions just skip over the packageOverrides.