Howto: Disable most gnome default applications (and what they are)

These are the GNOME core apps but there are some other programs installed when GNOME is enabled.

Some services enabled by core-os-services can be disabled:

hardware.bluetooth.enable = mkDefault true;
hardware.pulseaudio.enable = mkDefault true;
programs.dconf.enable = true;
security.polkit.enable = true;
services.accounts-daemon.enable = true;
services.dleyna-renderer.enable = mkDefault true;
services.dleyna-server.enable = mkDefault true;
services.power-profiles-daemon.enable = mkDefault true;
services.gnome.at-spi2-core.enable = true;
services.gnome.evolution-data-server.enable = true;
services.gnome.gnome-keyring.enable = true;
services.gnome.gnome-online-accounts.enable = mkDefault true;
services.gnome.gnome-online-miners.enable = true;
services.gnome.tracker-miners.enable = mkDefault true;
services.gnome.tracker.enable = mkDefault true;
services.hardware.bolt.enable = mkDefault true;
services.udisks2.enable = true;
services.upower.enable = config.powerManagement.enable;
services.xserver.libinput.enable = mkDefault true; # for controlling touchpad settings via gnome control center
networking.networkmanager.enable = mkDefault true;
services.colord.enable = mkDefault true;
services.gnome.glib-networking.enable = true;
services.gnome.gnome-browser-connector.enable = mkDefault true;
services.gnome.gnome-initial-setup.enable = mkDefault true;
services.gnome.gnome-remote-desktop.enable = mkDefault true;
services.gnome.gnome-settings-daemon.enable = true;
services.gnome.gnome-user-share.enable = mkDefault true;
services.gnome.rygel.enable = mkDefault true;
services.gvfs.enable = true;
services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
services.avahi.enable = mkDefault true;
services.geoclue2.enable = mkDefault true;

Some other apps can be excluded:

with pkgs.gnome; [
  adwaita-icon-theme
  # nixos-background-info This can't be excluded since it's defined locally. So even if we removed all GNOME backgrounds it seems we have to keep the NixOS one.
  gnome-backgrounds
  gnome-bluetooth
  gnome-color-manager
  gnome-control-center
  gnome-shell-extensions
  gnome-themes-extra
  pkgs.gnome-tour # GNOME Shell detects the .desktop file on first log-in.
  pkgs.gnome-user-docs
  pkgs.orca
  pkgs.glib # for gsettings program
  pkgs.gnome-menus
  pkgs.gtk3.out # for gtk-launch program
  pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
  baobab
  epiphany
  pkgs.gnome-text-editor
  gnome-calculator
  gnome-calendar
  gnome-characters
  gnome-clocks
  pkgs.gnome-console
  gnome-contacts
  gnome-font-viewer
  gnome-logs
  gnome-maps
  gnome-music
  gnome-system-monitor
  gnome-weather
  pkgs.loupe
  nautilus
  pkgs.gnome-connections
  simple-scan
  pkgs.snapshot
  totem
  yelp
];

By the way, I don’t know why pkgs.gnome.gnome-shell-extensions is added twice in https://github.com/NixOS/nixpkgs/blob/a8f393e6c1c80dc979e9209eea9eb4b75833df70/nixos/modules/services/x11/desktop-managers/gnome.nix.

After disabling many unused apps looks like GNOME still works well, except that the control center has some issues. After disabling gnome-online-accounts, the corresponding panel has no icons anymore. And the sharing panel freezes the program. It seems I can disable the panel by removing the corresponding desktop files but I don’t know how to do that without patching and rebuild the control center.

2 Likes