summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBobby Rong <rjl931189261@126.com>2022-07-10 23:47:48 +0800
committerGitHub <noreply@github.com>2022-07-10 23:47:48 +0800
commit3d35b3088251045d550bbcc0dba85522a804f3d6 (patch)
tree66b63684c0df7d6a4b4cc129908ca68250dde0a2
parentMerge pull request #180956 from NixOS/backport-180842-to-release-22.05 (diff)
parentnixos/gnome: make it possible to remove core packages (diff)
downloadnixpkgs-3d35b3088251045d550bbcc0dba85522a804f3d6.tar.gz
Merge pull request #180553 from NixOS/backport-151005-to-release-22.05
[Backport release-22.05] nixos/gnome: make it possible to remove core packages
-rw-r--r--nixos/modules/config/xdg/icons.nix8
-rw-r--r--nixos/modules/services/x11/desktop-managers/gnome.nix62
2 files changed, 48 insertions, 22 deletions
diff --git a/nixos/modules/config/xdg/icons.nix b/nixos/modules/config/xdg/icons.nix
index c83fdc251ef0..1e91670cf03b 100644
--- a/nixos/modules/config/xdg/icons.nix
+++ b/nixos/modules/config/xdg/icons.nix
@@ -1,4 +1,4 @@
-{ config, lib, ... }:
+{ config, lib, pkgs, ... }:
with lib;
{
@@ -23,6 +23,12 @@ with lib;
"/share/pixmaps"
];
+ environment.systemPackages = [
+ # Empty icon theme that contains index.theme file describing directories
+ # where toolkits should look for icons installed by apps.
+ pkgs.hicolor-icon-theme
+ ];
+
# libXcursor looks for cursors in XCURSOR_PATH
# it mostly follows the spec for icons
# See: https://www.x.org/releases/current/doc/man/man3/Xcursor.3.xhtml Themes
diff --git a/nixos/modules/services/x11/desktop-managers/gnome.nix b/nixos/modules/services/x11/desktop-managers/gnome.nix
index e7e626c66f02..ff9d08ea9970 100644
--- a/nixos/modules/services/x11/desktop-managers/gnome.nix
+++ b/nixos/modules/services/x11/desktop-managers/gnome.nix
@@ -189,7 +189,6 @@ in
Note that this should be a last resort; patching the package is preferred (see GPaste).
'';
- apply = list: list ++ [ pkgs.gnome.gnome-shell pkgs.gnome.gnome-shell-extensions ];
};
favoriteAppsOverride = mkOption {
@@ -367,6 +366,10 @@ in
services.upower.enable = config.powerManagement.enable;
services.xserver.libinput.enable = mkDefault true; # for controlling touchpad settings via gnome control center
+ # Explicitly enabled since GNOME will be severely broken without these.
+ xdg.mime.enable = true;
+ xdg.icons.enable = true;
+
xdg.portal.enable = true;
xdg.portal.extraPortals = [
pkgs.xdg-desktop-portal-gnome
@@ -400,6 +403,18 @@ in
})
(mkIf serviceCfg.core-shell.enable {
+ services.xserver.desktopManager.gnome.sessionPath =
+ let
+ mandatoryPackages = [
+ pkgs.gnome.gnome-shell
+ ];
+ optionalPackages = [
+ pkgs.gnome.gnome-shell-extensions
+ ];
+ in
+ mandatoryPackages
+ ++ utils.removePackagesByName optionalPackages config.environment.gnome.excludePackages;
+
services.colord.enable = mkDefault true;
services.gnome.chrome-gnome-shell.enable = mkDefault true;
services.gnome.glib-networking.enable = true;
@@ -452,26 +467,31 @@ in
];
# Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-38/elements/core/meta-gnome-core-shell.bst
- environment.systemPackages = with pkgs.gnome; [
- adwaita-icon-theme
- nixos-background-info
- gnome-backgrounds
- gnome-bluetooth
- gnome-color-manager
- gnome-control-center
- gnome-shell
- 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
- pkgs.gnome-menus
- pkgs.gtk3.out # for gtk-launch
- pkgs.hicolor-icon-theme
- pkgs.shared-mime-info # for update-mime-database
- pkgs.xdg-user-dirs # Update user dirs as described in http://freedesktop.org/wiki/Software/xdg-user-dirs/
- ];
+ environment.systemPackages =
+ let
+ mandatoryPackages = with pkgs.gnome; [
+ gnome-shell
+ ];
+ optionalPackages = with pkgs.gnome; [
+ adwaita-icon-theme
+ nixos-background-info
+ 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 http://freedesktop.org/wiki/Software/xdg-user-dirs/
+ ];
+ in
+ mandatoryPackages
+ ++ utils.removePackagesByName optionalPackages config.environment.gnome.excludePackages;
})
# Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/gnome-3-38/elements/core/meta-gnome-core-utilities.bst