Change:
Describe the bug Currently, the gnome3 module automatically adds the following to I know that is still experimental, and probably shouldn't be installed by default. Does GNOME3 document their distribution defaults anywhere? I think we could clean this up slightly. Note that if we remove anything from here it would be a good idea to conditionally add them based off the users . That way current users won't see these packages magically disappear from their machine. Or perhaps it's better document that in the release notes.
cc
If I recall correctly, we should be concerned about core and world:
Ahh, looks like there's a bit to do here. For example should be :wave:
I think it is just CI breakage after they removed , see
So after discussing briefly in irc, I guess we can implement profiles for gnome-world-packages gnome-games-packages And the module will continue to bring in , , and . In the future we can split that up so we can use flashback without gnome3. Then we can eliminate the lists in since that should be in the profiles where it's useful. One thing I'm unclear on is how to organize the profiles, and do they have options to enable?
Thinking about it more, the main benefit of profiles is that they would not need options. But if we want parts of the profiles to be disableable, we would need to have options for them anyway. Also with options, we get generated documentation for free. I am not sure that is a way to go an more. As for the subdivision, maybe it would make more sense to look on it from users’ perspective: Hard-core hacker wants a bare-bones GNOME Shell with minimum necessary services, not even file manager or terminal emulator – they already have favourite ones. Casual user might have some favourite apps but they are generally happy to use whatever comes with the desktop environment. Here we would ship the core apps. An organization such as a library might want a full desktop environment for their shared workstations, with programs for all possible purposes. But they probably have a sysadmin who wants to have a fine control over what gets installed on the workstations. For that reason, creating a profile that bundles all the world apps probably does not make sense. Non-GNOME users who want to use GNOME apps probably do not want to use all GNOME apps either, so a core collection might not make sense for them. A parent wants to install various games on the children’s computer. This is kind of similar to the organization but here the collection is more useful. …
This issue has been mentioned on NixOS Discourse. There might be relevant details there:
This issue has been mentioned on NixOS Discourse. There might be relevant details there:

Discussion:
and <option>services.xserver.desktopManager.xfce4-14</option> simultaneously or to downgrade from Xfce 4.14 after upgrading. </para> </listitem> <ins> <listitem> <para> The GNOME 3 desktop manager module sports an interface to enable/disable core services, applications, and optional GNOME packages like games. <itemizedlist> <para>This can be achieved with the following options which the desktop manager default enables, excluding <literal>games</literal>.</para> <listitem><para><link linkend="opt-services.gnome3.core-os-services.enable"><literal>services.gnome3.core-os-services.enable</literal></link></para></listitem> <listitem><para><link linkend="opt-services.gnome3.core-shell.enable"><literal>services.gnome3.core-shell.enable</literal></link></para></listitem> <listitem><para><link linkend="opt-services.gnome3.core-utilities.enable"><literal>services.gnome3.core-utilities.enable</literal></link></para></listitem> <listitem><para><link linkend="opt-services.gnome3.games.enable"><literal>services.gnome3.games.enable</literal></link></para></listitem> </itemizedlist> With these options we hope to give users finer grained control over their systems. Prior to this change you'd either have to manually disable options or use <option>environment.gnome3.excludePackages</option> which only excluded the optional applications. <option>environment.gnome3.excludePackages</option> is now unguarded, it can exclude any package installed with <option>environment.systemPackages</option> in the GNOME 3 module. </para> </listitem> <listitem> <para> Orthogonal to the previous changes to the GNOME 3 desktop manager module, we've updated all default services and applications to match as close as possible to a default reference GNOME 3 experience. </para> <bridgehead>The following changes were enacted in <option>services.gnome3.core-utilities.enable</option></bridgehead> <itemizedlist> <title>Applications removed from defaults:</title> <listitem><para><literal>accerciser</literal></para></listitem> <listitem><para><literal>dconf-editor</literal></para></listitem> <listitem><para><literal>evolution</literal></para></listitem> <listitem><para><literal>gnome-documents</literal></para></listitem> <listitem><para><literal>gnome-nettool</literal></para></listitem> <listitem><para><literal>gnome-power-manager</literal></para></listitem> <listitem><para><literal>gnome-todo</literal></para></listitem> <listitem><para><literal>gnome-tweaks</literal></para></listitem> <listitem><para><literal>gnome-usage</literal></para></listitem> <listitem><para><literal>gucharmap</literal></para></listitem> <listitem><para><literal>nautilus-sendto</literal></para></listitem> <listitem><para><literal>vinagre</literal></para></listitem> </itemizedlist> <itemizedlist> <title>Applications added to defaults:</title> <listitem><para><literal>cheese</literal></para></listitem> <listitem><para><literal>geary</literal></para></listitem> </itemizedlist> <bridgehead>The following changes were enacted in <option>services.gnome3.core-shell.enable</option></bridgehead> <itemizedlist> <title>Applications added to defaults:</title> <listitem><para><literal>gnome-color-manager</literal></para></listitem> <listitem><para><literal>orca</literal></para></listitem> </itemizedlist> <itemizedlist> <title>Services enabled:</title> <listitem><para><option>services.avahi.enable</option></para></listitem> </itemizedlist> </listitem> </ins> </itemizedlist> </section>

./programs/qt5ct.nix ./programs/screen.nix ./programs/sedutil.nix <ins> ./programs/seahorse.nix </ins> ./programs/slock.nix ./programs/shadow.nix ./programs/shell.nix

./services/desktops/gnome3/gnome-settings-daemon.nix ./services/desktops/gnome3/gnome-user-share.nix ./services/desktops/gnome3/rygel.nix <del> ./services/desktops/gnome3/seahorse.nix </del> ./services/desktops/gnome3/sushi.nix ./services/desktops/gnome3/tracker.nix ./services/desktops/gnome3/tracker-miners.nix

<ins> # Seahorse. { config, pkgs, lib, ... }: with lib; { # Added 2019-08-27 imports = [ (mkRenamedOptionModule [ "services" "gnome3" "seahorse" "enable" ] [ "programs" "seahorse" "enable" ]) ]; ###### interface options = { programs.seahorse = { enable = mkEnableOption "Seahorse, a GNOME application for managing encryption keys and passwords in the GNOME Keyring"; }; }; ###### implementation config = mkIf config.programs.seahorse.enable { environment.systemPackages = [ pkgs.gnome3.seahorse ]; services.dbus.packages = [ pkgs.gnome3.seahorse ]; }; } </ins>

<del> # Seahorse daemon. { config, pkgs, lib, ... }: with lib; { ###### interface options = { services.gnome3.seahorse = { enable = mkOption { type = types.bool; default = false; description = '' Whether to enable Seahorse search provider for the GNOME Shell activity search. ''; }; }; }; ###### implementation config = mkIf config.services.gnome3.seahorse.enable { environment.systemPackages = [ pkgs.gnome3.seahorse pkgs.gnome3.dconf ]; services.dbus.packages = [ pkgs.gnome3.seahorse ]; }; } </del>

picture-uri='file://${pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom}/share/artwork/gnome/nix-wallpaper-simple-dark-gray_bottom.png' [org.gnome.shell] <del> favorite-apps=[ 'org.gnome.Epiphany.desktop', 'evolution.desktop', 'org.gnome.Music.desktop', 'org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ] </del> <ins> favorite-apps=[ 'org.gnome.Epiphany.desktop', 'org.gnome.Geary.desktop', 'org.gnome.Music.desktop', 'org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ] </ins> ${cfg.extraGSettingsOverrides} EOF

services.dbus.packages = optional config.services.printing.enable pkgs.system-config-printer; <ins> services.avahi.enable = mkDefault true; </ins> services.geoclue2.enable = mkDefault true; services.geoclue2.enableDemoAgent = false; # GNOME has its own geoclue agent

source-sans-pro ]; <ins> # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-32/elements/core/meta-gnome-core-shell.bst </ins> environment.systemPackages = with pkgs.gnome3; [ adwaita-icon-theme gnome-backgrounds gnome-bluetooth <ins> gnome-color-manager </ins> gnome-control-center gnome-getting-started-docs gnome-shell gnome-shell-extensions gnome-themes-extra gnome-user-docs <ins> pkgs.orca </ins> pkgs.glib # for gsettings pkgs.gnome-menus pkgs.gtk3.out # for gtk-launch

]; }) <ins> # Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-32/elements/core/meta-gnome-core-utilities.bst </ins> (mkIf serviceCfg.core-utilities.enable { environment.systemPackages = (with pkgs.gnome3; removePackagesByName [ <del> baobab eog epiphany evince gucharmap nautilus totem yelp gnome-calculator gnome-contacts gnome-font-viewer gnome-screenshot gnome-system-monitor simple-scan gnome-terminal evolution file-roller gedit gnome-clocks gnome-music gnome-tweaks pkgs.gnome-photos nautilus-sendto dconf-editor vinagre gnome-weather gnome-logs gnome-maps gnome-characters gnome-calendar accerciser gnome-nettool gnome-packagekit gnome-software gnome-power-manager gnome-todo pkgs.gnome-usage </del> <ins> baobab cheese eog epiphany geary gedit gnome-calculator gnome-calendar gnome-characters gnome-clocks gnome-contacts gnome-font-viewer gnome-logs gnome-maps gnome-music gnome-photos gnome-screenshot gnome-software gnome-system-monitor gnome-weather nautilus simple-scan totem yelp # Unsure if sensible for NixOS /* gnome-boxes */ </ins> ] config.environment.gnome3.excludePackages); # Enable default programs programs.evince.enable = mkDefault true; programs.file-roller.enable = mkDefault true; programs.gnome-disks.enable = mkDefault true; <del> programs.gnome-documents.enable = mkDefault true; </del> programs.gnome-terminal.enable = mkDefault true; <del> services.gnome3.seahorse.enable = mkDefault true; </del> <ins> programs.seahorse.enable = mkDefault true; </ins> services.gnome3.sushi.enable = mkDefault true; # Let nautilus find extensions