nixos/gnome: Update core apps

https://blogs.gnome.org/mcatanzaro/2025/03/21/gnome-48-core-apps-update/

- Add Decibels https://gitlab.gnome.org/GNOME/gnome-build-meta/-/commit/5d89ffdee45e463d3987e0a4e5b676266488b7d0
(It somewhat overlaps with GNOME Music but the latter remains for Music library.)
- Remove gnome-shell-extensions https://gitlab.gnome.org/GNOME/gnome-build-meta/-/commit/490c573b1b18fecfa6068b8bf896727ecd46eb68
- Add Sysprof and D-Spy to developer tools.

Changed files
+16 -16
nixos
doc
manual
release-notes
modules
services
x11
desktop-managers
+7 -1
nixos/doc/manual/release-notes/rl-2505.section.md
···
- OpenSSH has been updated from 9.9p2 to 10.0p2, dropping support for DSA keys and adding a new `ssh-auth` binary to handle user authentication in a different address space from unauthenticated sessions. Additionally, we now enable a configure option by default that attempts to lock sshd into RAM to prevent it from being swapped out, which may improve performance if the system is under memory pressure. See the [full changelog](https://www.openwall.com/lists/oss-security/2025/04/09/1) for more details.
-
- GNOME has been updated to version 48. Refer to the [GNOME release notes](https://release.gnome.org/48/) for more details.
- The `intel` video driver for X.org (from the xf86-video-intel package) which was previously removed because it was non-functional has been fixed and the driver has been re-introduced.
···
- OpenSSH has been updated from 9.9p2 to 10.0p2, dropping support for DSA keys and adding a new `ssh-auth` binary to handle user authentication in a different address space from unauthenticated sessions. Additionally, we now enable a configure option by default that attempts to lock sshd into RAM to prevent it from being swapped out, which may improve performance if the system is under memory pressure. See the [full changelog](https://www.openwall.com/lists/oss-security/2025/04/09/1) for more details.
+
- GNOME has been updated to version 48.
+
+
- `decibels` music player is now installed by default. You can disable it using [](#opt-environment.gnome.excludePackages).
+
- `gnome-shell-extensions` extension collection (which included GNOME Classic extensions, Apps Menu, and User Themes, among others) are no longer installed by default. You can install them again with [](#opt-services.xserver.desktopManager.gnome.sessionPath).
+
- Option [](#opt-services.gnome.core-developer-tools.enable) now also installs `sysprof` and `d-spy`.
+
+
Refer to the [GNOME release notes](https://release.gnome.org/48/) for more details.
- The `intel` video driver for X.org (from the xf86-video-intel package) which was previously removed because it was non-functional has been fixed and the driver has been re-introduced.
+9 -15
nixos/modules/services/x11/desktop-managers/gnome.nix
···
})
(lib.mkIf serviceCfg.core-shell.enable {
-
services.xserver.desktopManager.gnome.sessionPath =
-
let
-
mandatoryPackages = [
-
pkgs.gnome-shell
-
];
-
optionalPackages = [
-
pkgs.gnome-shell-extensions
-
];
-
in
-
mandatoryPackages
-
++ utils.removePackagesByName optionalPackages config.environment.gnome.excludePackages;
services.colord.enable = mkDefault true;
services.gnome.glib-networking.enable = true;
···
source-sans
];
-
# Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-38/elements/core/meta-gnome-core-shell.bst
environment.systemPackages =
let
mandatoryPackages = [
···
pkgs.gnome-bluetooth
pkgs.gnome-color-manager
pkgs.gnome-control-center
-
pkgs.gnome-shell-extensions
pkgs.gnome-tour # GNOME Shell detects the .desktop file on first log-in.
pkgs.gnome-user-docs
pkgs.glib # for gsettings program
···
++ utils.removePackagesByName optionalPackages config.environment.gnome.excludePackages;
})
-
# Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/-/blob/gnome-45/elements/core/meta-gnome-core-utilities.bst
(lib.mkIf serviceCfg.core-utilities.enable {
environment.systemPackages = utils.removePackagesByName (
[
pkgs.baobab
pkgs.epiphany
pkgs.gnome-text-editor
pkgs.gnome-calculator
···
] config.environment.gnome.excludePackages;
})
-
# Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/-/blob/3.38.0/elements/core/meta-gnome-core-developer-tools.bst
(lib.mkIf serviceCfg.core-developer-tools.enable {
environment.systemPackages = utils.removePackagesByName [
pkgs.dconf-editor
pkgs.devhelp
pkgs.gnome-builder
# boxes would make sense in this option, however
# it doesn't function well enough to be included
# in default configurations.
# https://github.com/NixOS/nixpkgs/issues/60908
# pkgs.gnome-boxes
] config.environment.gnome.excludePackages;
services.sysprof.enable = notExcluded pkgs.sysprof;
···
})
(lib.mkIf serviceCfg.core-shell.enable {
+
services.xserver.desktopManager.gnome.sessionPath = [
+
pkgs.gnome-shell
+
];
services.colord.enable = mkDefault true;
services.gnome.glib-networking.enable = true;
···
source-sans
];
+
# Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-48/elements/core/meta-gnome-core-shell.bst
environment.systemPackages =
let
mandatoryPackages = [
···
pkgs.gnome-bluetooth
pkgs.gnome-color-manager
pkgs.gnome-control-center
pkgs.gnome-tour # GNOME Shell detects the .desktop file on first log-in.
pkgs.gnome-user-docs
pkgs.glib # for gsettings program
···
++ utils.removePackagesByName optionalPackages config.environment.gnome.excludePackages;
})
+
# Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/-/blob/gnome-48/elements/core/meta-gnome-core-apps.bst
(lib.mkIf serviceCfg.core-utilities.enable {
environment.systemPackages = utils.removePackagesByName (
[
pkgs.baobab
+
pkgs.decibels
pkgs.epiphany
pkgs.gnome-text-editor
pkgs.gnome-calculator
···
] config.environment.gnome.excludePackages;
})
+
# Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/-/blob/gnome-48/elements/core/meta-gnome-core-developer-tools.bst
(lib.mkIf serviceCfg.core-developer-tools.enable {
environment.systemPackages = utils.removePackagesByName [
pkgs.dconf-editor
pkgs.devhelp
+
pkgs.d-spy
pkgs.gnome-builder
# boxes would make sense in this option, however
# it doesn't function well enough to be included
# in default configurations.
# https://github.com/NixOS/nixpkgs/issues/60908
# pkgs.gnome-boxes
+
pkgs.sysprof
] config.environment.gnome.excludePackages;
services.sysprof.enable = notExcluded pkgs.sysprof;