anchor.diff:          pkgs.gtk3.out
           pkgs.shared-mime-info
           pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
  -        pkgs.mate.mate-settings-daemon
           pkgs.yelp # for 'Contents' in 'Help' menus
         ])
         config.environment.mate.excludePackages;
  
positive.code:       pkgs.mate.mate-session-manager
      ];
  
      services.xserver.displayManager.sessionCommands = ''
        if test "$XDG_CURRENT_DESKTOP" = "MATE"; then
            export XDG_MENU_PREFIX=mate-
  
            # Let caja find extensions
            export CAJA_EXTENSION_DIRS=$CAJA_EXTENSION_DIRS''${CAJA_EXTENSION_DIRS:+:}${config.system.path}/lib/caja/extensions-2.0
  
            # Let caja extensions find gsettings schemas
            ${concatMapStrings (p: ''
            if [ -d "${p}/lib/caja/extensions-2.0" ]; then
                ${addToXDGDirs p}
            fi
            '') config.environment.systemPackages}
  
            # Add mate-control-center paths to some XDG variables because its schemas are needed by mate-settings-daemon, and mate-settings-daemon is a dependency for mate-control-center (that is, they are mutually recursive)
            ${addToXDGDirs pkgs.mate.mate-control-center}
        fi
      '';
  
      # Let mate-panel find applets
      environment.sessionVariables."MATE_PANEL_APPLETS_DIR" = "${config.system.path}/share/mate-panel/applets";
  
negative.code: with lib;
  
  let
  
    xcfg = config.services.xserver;
    cfg = xcfg.desktopManager.mate;
  