Allow specifying the gnome3 packages to use for the xserver service

+5 -2
nixos/modules/services/desktops/gnome3/at-spi2-core.nix
···
with lib;
+
let
+
gnome3 = config.environment.gnome3.packageSet;
+
in
{
###### interface
···
config = mkIf config.services.gnome3.at-spi2-core.enable {
-
environment.systemPackages = [ pkgs.gnome3.at_spi2_core ];
+
environment.systemPackages = [ gnome3.at_spi2_core ];
-
services.dbus.packages = [ pkgs.gnome3.at_spi2_core ];
+
services.dbus.packages = [ gnome3.at_spi2_core ];
};
+5 -2
nixos/modules/services/desktops/gnome3/gnome-documents.nix
···
with pkgs.lib;
+
let
+
gnome3 = config.environment.gnome3.packageSet;
+
in
{
###### interface
···
config = mkIf config.services.gnome3.gnome-documents.enable {
-
environment.systemPackages = [ pkgs.gnome3.gnome-documents ];
+
environment.systemPackages = [ gnome3.gnome-documents ];
-
services.dbus.packages = [ pkgs.gnome3.gnome-documents ];
+
services.dbus.packages = [ gnome3.gnome-documents ];
services.gnome3.gnome-online-accounts.enable = true;
+5 -2
nixos/modules/services/desktops/gnome3/gnome-keyring.nix
···
with pkgs.lib;
+
let
+
gnome3 = config.environment.gnome3.packageSet;
+
in
{
###### interface
···
config = mkIf config.services.gnome3.gnome-keyring.enable {
-
environment.systemPackages = [ pkgs.gnome3.gnome_keyring ];
+
environment.systemPackages = [ gnome3.gnome_keyring ];
-
services.dbus.packages = [ pkgs.gnome3.gnome_keyring ];
+
services.dbus.packages = [ gnome3.gnome_keyring ];
};
+5 -2
nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix
···
with pkgs.lib;
+
let
+
gnome3 = config.environment.gnome3.packageSet;
+
in
{
###### interface
···
config = mkIf config.services.gnome3.gnome-online-accounts.enable {
-
environment.systemPackages = [ pkgs.gnome3.gnome_online_accounts ];
+
environment.systemPackages = [ gnome3.gnome_online_accounts ];
-
services.dbus.packages = [ pkgs.gnome3.gnome_online_accounts ];
+
services.dbus.packages = [ gnome3.gnome_online_accounts ];
};
+5 -2
nixos/modules/services/desktops/gnome3/gnome-online-miners.nix
···
with pkgs.lib;
+
let
+
gnome3 = config.environment.gnome3.packageSet;
+
in
{
###### interface
···
config = mkIf config.services.gnome3.gnome-online-miners.enable {
-
environment.systemPackages = [ pkgs.gnome3.gnome-online-miners ];
+
environment.systemPackages = [ gnome3.gnome-online-miners ];
-
services.dbus.packages = [ pkgs.gnome3.gnome-online-miners ];
+
services.dbus.packages = [ gnome3.gnome-online-miners ];
};
+5 -2
nixos/modules/services/desktops/gnome3/gnome-user-share.nix
···
with pkgs.lib;
+
let
+
gnome3 = config.environment.gnome3.packageSet;
+
in
{
###### interface
···
config = mkIf config.services.gnome3.gnome-user-share.enable {
-
environment.systemPackages = [ pkgs.gnome3.gnome-user-share ];
+
environment.systemPackages = [ gnome3.gnome-user-share ];
-
services.xserver.displayManager.sessionCommands = with pkgs.gnome3; ''
+
services.xserver.displayManager.sessionCommands = with gnome3; ''
# Don't let gnome-control-center depend upon gnome-user-share
export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${gnome-user-share}/share/gsettings-schemas/${gnome-user-share.name}
'';
+5 -2
nixos/modules/services/desktops/gnome3/seahorse.nix
···
with pkgs.lib;
+
let
+
gnome3 = config.environment.gnome3.packageSet;
+
in
{
###### interface
···
config = mkIf config.services.gnome3.seahorse.enable {
-
environment.systemPackages = [ pkgs.gnome3.seahorse ];
+
environment.systemPackages = [ gnome3.seahorse ];
-
services.dbus.packages = [ pkgs.gnome3.seahorse ];
+
services.dbus.packages = [ gnome3.seahorse ];
};
+5 -2
nixos/modules/services/desktops/gnome3/sushi.nix
···
with lib;
+
let
+
gnome3 = config.environment.gnome3.packageSet;
+
in
{
###### interface
···
config = mkIf config.services.gnome3.sushi.enable {
-
environment.systemPackages = [ pkgs.gnome3.sushi ];
+
environment.systemPackages = [ gnome3.sushi ];
-
services.dbus.packages = [ pkgs.gnome3.sushi ];
+
services.dbus.packages = [ gnome3.sushi ];
};
+5 -2
nixos/modules/services/desktops/gnome3/tracker.nix
···
with pkgs.lib;
+
let
+
gnome3 = config.environment.gnome3.packageSet;
+
in
{
###### interface
···
config = mkIf config.services.gnome3.tracker.enable {
-
environment.systemPackages = [ pkgs.gnome3.tracker ];
+
environment.systemPackages = [ gnome3.tracker ];
-
services.dbus.packages = [ pkgs.gnome3.tracker ];
+
services.dbus.packages = [ gnome3.tracker ];
};
+9 -3
nixos/modules/services/x11/desktop-managers/gnome3.nix
···
let
cfg = config.services.xserver.desktopManager.gnome3;
-
gnome3 = pkgs.gnome3;
+
gnome3 = config.environment.gnome3.packageSet;
# Remove packages of ys from xs, based on their names
removePackagesByName = xs: ys:
let
pkgName = drv: (builtins.parseDrvName drv.name).name;
-
ysNames = map pkgName ys;
+
ysNames = map pkgName ys;
res = (filter (x: !(builtins.elem (pkgName x) ysNames)) xs);
in
filter (x: !(builtins.elem (pkgName x) ysNames)) xs;
···
description = "Enable Gnome 3 desktop manager.";
};
+
environment.gnome3.packageSet = mkOption {
+
default = pkgs.gnome3;
+
example = literalExample "pkgs.gnome3_12";
+
description = "Which Gnome 3 package set to use.";
+
};
+
environment.gnome3.excludePackages = mkOption {
default = [];
example = "[ pkgs.gnome3.totem ]";
···
# Don't let epiphany depend upon gnome-shell
# Override default mimeapps
-
export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${pkgs.gnome3.gnome_shell}/share/gsettings-schemas/${pkgs.gnome3.gnome_shell.name}:${mimeAppsList}/share
+
export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${gnome3.gnome_shell}/share/gsettings-schemas/${gnome3.gnome_shell.name}:${mimeAppsList}/share
# Let gnome-control-center find gnome-shell search providers
export GNOME_SEARCH_PROVIDERS_DIR=${config.system.path}/share/gnome-shell/search-providers/