Overriding package versions used by services


Now that Wayland support has landed for gnome3 & gdm in master, is there any easy way to override which versions of these packages will be installed when using the following configuration:

services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome3.enable = true;

I would like the latest version of gnome3 and gdm without upgrading my entire system to the unstable channel. Is such a thing possible?

I’ve tried something like this already, but without much luck (currently uncommenting the gnome3 = unstable-small.gnome3; line just causes nixos-rebuild to gobble up all of my available RAM):

nixpkgs.config.packageOverrides = super: let self = super.pkgs; in with self; rec {
  # unstable-small package set, install by running:
  # sudo nix-channel --add https://nixos.org/channels/nixos-unstable-small unstable-small
  unstable-small = import <unstable-small> {
    config = self.config;

  disabledModules = [
  imports = [

  # uncommenting this freezes up nixos-rebuild
  # gnome3 = unstable-small.gnome3;
  gdm = unstable-small.gnome3.gdm;

Besides, I think I may have to override the gnome3 packages in nixpkgs/pkgs/desktops/gnome-3 somehow as well?

Thanks for you time!

  • Rasmus

You might be able to upgrade gdm but gnome3 is probably too complex and has too many dependencies to be can solved this by a few overrides. The gnome3 module also depends on other modules.
imports and disabledModules do not belong in nixpkgs.config.packageOverrides but outside the brackets.

1 Like