nixos/gnome & nixos/gdm: move out of x11

Since DEs like KDE Plasma 6, GNOME and COSMIC are not designed to be X11-exclusive, putting them under `services.xserver` is misleading. In particular, GNOME defaults to Wayland these days and X11 support is going to be dropped in near future.

Let’s follow Plasma and move GNOME NixOS options out of `xserver` attribute.

This patch does not include any changes to X11 support itself.

Signed-off-by: John Titor <50095635+JohnRTitor@users.noreply.github.com>
This commit is contained in:
hand7s 2025-05-28 14:27:36 +03:00 committed by GitHub
parent bfbf67f8bb
commit c464c44a42
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
24 changed files with 134 additions and 72 deletions

2
.github/labeler.yml vendored
View file

@ -162,7 +162,7 @@
- any-glob-to-any-file: - any-glob-to-any-file:
- doc/languages-frameworks/gnome.section.md - doc/languages-frameworks/gnome.section.md
- nixos/modules/services/desktops/gnome/**/* - nixos/modules/services/desktops/gnome/**/*
- nixos/modules/services/x11/desktop-managers/gnome.nix - nixos/modules/services/desktop-managers/gnome.nix
- nixos/tests/gnome-xorg.nix - nixos/tests/gnome-xorg.nix
- nixos/tests/gnome.nix - nixos/tests/gnome.nix
- pkgs/desktops/gnome/**/* - pkgs/desktops/gnome/**/*

View file

@ -29,7 +29,7 @@ Thus you should pick one or more of the following lines:
{ {
services.xserver.desktopManager.plasma5.enable = true; services.xserver.desktopManager.plasma5.enable = true;
services.xserver.desktopManager.xfce.enable = true; services.xserver.desktopManager.xfce.enable = true;
services.xserver.desktopManager.gnome.enable = true; services.desktopManager.gnome.enable = true;
services.xserver.desktopManager.mate.enable = true; services.xserver.desktopManager.mate.enable = true;
services.xserver.windowManager.xmonad.enable = true; services.xserver.windowManager.xmonad.enable = true;
services.xserver.windowManager.twm.enable = true; services.xserver.windowManager.twm.enable = true;
@ -46,7 +46,7 @@ alternative one by picking one of the following lines:
```nix ```nix
{ {
services.displayManager.sddm.enable = true; services.displayManager.sddm.enable = true;
services.xserver.displayManager.gdm.enable = true; services.displayManager.gdm.enable = true;
} }
``` ```

View file

@ -20,7 +20,7 @@ Alongside many enhancements to NixOS modules and general system improvements, th
- GNOME has been updated to version 48. - GNOME has been updated to version 48.
- `decibels` music player is now installed by default. You can disable it using [](#opt-environment.gnome.excludePackages). - `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). - `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 {option}`services.xserver.desktopManager.gnome.sessionPath`.
- Option [](#opt-services.gnome.core-developer-tools.enable) now also installs `sysprof` and `d-spy`. - Option [](#opt-services.gnome.core-developer-tools.enable) now also installs `sysprof` and `d-spy`.
- Option `services.gnome.core-utilities.enable` has been renamed to [](#opt-services.gnome.core-apps.enable). - Option `services.gnome.core-utilities.enable` has been renamed to [](#opt-services.gnome.core-apps.enable).
- `cantarell-fonts`, `source-code-pro` and `source-sans` fonts are no longer installed by default. They have been replaced by `adwaita-fonts`. - `cantarell-fonts`, `source-code-pro` and `source-sans` fonts are no longer installed by default. They have been replaced by `adwaita-fonts`.

View file

@ -7,7 +7,7 @@
isoImage.edition = lib.mkDefault "gnome"; isoImage.edition = lib.mkDefault "gnome";
services.xserver.desktopManager.gnome = { services.desktopManager.gnome = {
# Add Firefox and other tools useful for installation to the launcher # Add Firefox and other tools useful for installation to the launcher
favoriteAppsOverride = '' favoriteAppsOverride = ''
[org.gnome.shell] [org.gnome.shell]
@ -35,7 +35,7 @@
QT_QPA_PLATFORM = "$([[ $XDG_SESSION_TYPE = \"wayland\" ]] && echo \"wayland\")"; QT_QPA_PLATFORM = "$([[ $XDG_SESSION_TYPE = \"wayland\" ]] && echo \"wayland\")";
}; };
services.xserver.displayManager.gdm = { services.displayManager.gdm = {
enable = true; enable = true;
# autoSuspend makes the machine automatically suspend after inactivity. # autoSuspend makes the machine automatically suspend after inactivity.
# It's possible someone could/try to ssh'd into the machine and obviously # It's possible someone could/try to ssh'd into the machine and obviously

View file

@ -7,7 +7,7 @@
isoImage.edition = lib.mkDefault "gnome"; isoImage.edition = lib.mkDefault "gnome";
services.xserver.desktopManager.gnome = { services.desktopManager.gnome = {
# Add Firefox and other tools useful for installation to the launcher # Add Firefox and other tools useful for installation to the launcher
favoriteAppsOverride = '' favoriteAppsOverride = ''
[org.gnome.shell] [org.gnome.shell]
@ -16,7 +16,7 @@
enable = true; enable = true;
}; };
services.xserver.displayManager.gdm = { services.displayManager.gdm = {
enable = true; enable = true;
# autoSuspend makes the machine automatically suspend after inactivity. # autoSuspend makes the machine automatically suspend after inactivity.
# It's possible someone could/try to ssh'd into the machine and obviously # It's possible someone could/try to ssh'd into the machine and obviously

View file

@ -589,6 +589,7 @@
./services/development/zammad.nix ./services/development/zammad.nix
./services/display-managers/cosmic-greeter.nix ./services/display-managers/cosmic-greeter.nix
./services/display-managers/default.nix ./services/display-managers/default.nix
./services/display-managers/gdm.nix
./services/display-managers/greetd.nix ./services/display-managers/greetd.nix
./services/display-managers/ly.nix ./services/display-managers/ly.nix
./services/display-managers/sddm.nix ./services/display-managers/sddm.nix
@ -1706,7 +1707,6 @@
./services/x11/colord.nix ./services/x11/colord.nix
./services/x11/desktop-managers/default.nix ./services/x11/desktop-managers/default.nix
./services/x11/display-managers/default.nix ./services/x11/display-managers/default.nix
./services/x11/display-managers/gdm.nix
./services/x11/display-managers/lightdm.nix ./services/x11/display-managers/lightdm.nix
./services/x11/display-managers/slim.nix ./services/x11/display-managers/slim.nix
./services/x11/display-managers/startx.nix ./services/x11/display-managers/startx.nix

View file

@ -27,7 +27,7 @@
services.dbus.packages = [ pkgs.gpaste ]; services.dbus.packages = [ pkgs.gpaste ];
systemd.packages = [ pkgs.gpaste ]; systemd.packages = [ pkgs.gpaste ];
# gnome-control-center crashes in Keyboard Shortcuts pane without the GSettings schemas. # gnome-control-center crashes in Keyboard Shortcuts pane without the GSettings schemas.
services.xserver.desktopManager.gnome.sessionPath = [ pkgs.gpaste ]; services.desktopManager.gnome.sessionPath = [ pkgs.gpaste ];
# gpaste-reloaded applet doesn't work without the typelib # gpaste-reloaded applet doesn't work without the typelib
services.xserver.desktopManager.cinnamon.sessionPath = [ pkgs.gpaste ]; services.xserver.desktopManager.cinnamon.sessionPath = [ pkgs.gpaste ];
}; };

View file

@ -28,7 +28,7 @@ in
nautilus-open-any-terminal nautilus-open-any-terminal
]; ];
environment.sessionVariables = lib.mkIf (!config.services.xserver.desktopManager.gnome.enable) { environment.sessionVariables = lib.mkIf (!config.services.desktopManager.gnome.enable) {
NAUTILUS_4_EXTENSION_DIR = "${pkgs.nautilus-python}/lib/nautilus/extensions-4"; NAUTILUS_4_EXTENSION_DIR = "${pkgs.nautilus-python}/lib/nautilus/extensions-4";
}; };

View file

@ -33,7 +33,7 @@
# Support GNOME desktop environment if it's enabled on the system. # Support GNOME desktop environment if it's enabled on the system.
gnomeXdgDesktopPortalSupport = gnomeXdgDesktopPortalSupport =
prev.gnomeXdgDesktopPortalSupport or config.services.xserver.desktopManager.gnome.enable; prev.gnomeXdgDesktopPortalSupport or config.services.desktopManager.gnome.enable;
# Support Hyprland desktop for Wayland if it's enabled on the system. # Support Hyprland desktop for Wayland if it's enabled on the system.
hyprlandXdgDesktopPortalSupport = hyprlandXdgDesktopPortalSupport =

View file

@ -10,8 +10,8 @@ To enable the GNOME desktop use:
```nix ```nix
{ {
services.xserver.desktopManager.gnome.enable = true; services.desktopManager.gnome.enable = true;
services.xserver.displayManager.gdm.enable = true; services.displayManager.gdm.enable = true;
} }
``` ```
@ -76,17 +76,17 @@ GNOME Flashback provides a desktop environment based on the classic GNOME 2 arch
```nix ```nix
{ {
services.xserver.desktopManager.gnome.flashback.enableMetacity = true; services.desktopManager.gnome.flashback.enableMetacity = true;
} }
``` ```
It is also possible to create custom sessions that replace Metacity with a different window manager using [](#opt-services.xserver.desktopManager.gnome.flashback.customSessions). It is also possible to create custom sessions that replace Metacity with a different window manager using [](#opt-services.desktopManager.gnome.flashback.customSessions).
The following example uses `xmonad` window manager: The following example uses `xmonad` window manager:
```nix ```nix
{ {
services.xserver.desktopManager.gnome.flashback.customSessions = [ services.desktopManager.gnome.flashback.customSessions = [
{ {
wmName = "xmonad"; wmName = "xmonad";
wmLabel = "XMonad"; wmLabel = "XMonad";
@ -143,10 +143,10 @@ Overrides really only change the default values for GSettings keys so if you or
::: :::
You can override the default GSettings values using the You can override the default GSettings values using the
[](#opt-services.xserver.desktopManager.gnome.extraGSettingsOverrides) option. [](#opt-services.desktopManager.gnome.extraGSettingsOverrides) option.
Take note that whatever packages you want to override GSettings for, you need to add them to Take note that whatever packages you want to override GSettings for, you need to add them to
[](#opt-services.xserver.desktopManager.gnome.extraGSettingsOverridePackages). [](#opt-services.desktopManager.gnome.extraGSettingsOverridePackages).
You can use `dconf-editor` tool to explore which GSettings you can set. You can use `dconf-editor` tool to explore which GSettings you can set.
@ -154,7 +154,7 @@ You can use `dconf-editor` tool to explore which GSettings you can set.
```nix ```nix
{ {
services.xserver.desktopManager.gnome = { services.desktopManager.gnome = {
extraGSettingsOverrides = '' extraGSettingsOverrides = ''
# Change default background # Change default background
[org.gnome.desktop.background] [org.gnome.desktop.background]

View file

@ -15,7 +15,7 @@ let
literalExpression literalExpression
; ;
cfg = config.services.xserver.desktopManager.gnome; cfg = config.services.desktopManager.gnome;
serviceCfg = config.services.gnome; serviceCfg = config.services.gnome;
# Prioritize nautilus by default when opening directories # Prioritize nautilus by default when opening directories
@ -78,13 +78,45 @@ let
in in
{ {
meta = { meta = {
doc = ./gnome.md; doc = ./gnome.md;
maintainers = lib.teams.gnome.members; maintainers = lib.teams.gnome.members;
}; };
imports = [ imports = [
(lib.mkRenamedOptionModule
[ "services" "xserver" "desktopManager" "gnome" "enable" ]
[ "services" "desktopManager" "gnome" "enable" ]
)
(lib.mkRenamedOptionModule
[ "services" "xserver" "desktopManager" "gnome" "extraGSettingsOverrides" ]
[ "services" "desktopManager" "gnome" "extraGSettingsOverrides" ]
)
(lib.mkRenamedOptionModule
[ "services" "xserver" "desktopManager" "gnome" "extraGSettingsOverridePackages" ]
[ "services" "desktopManager" "gnome" "extraGSettingsOverridePackages" ]
)
(lib.mkRenamedOptionModule
[ "services" "xserver" "desktopManager" "gnome" "debug" ]
[ "services" "desktopManager" "gnome" "debug" ]
)
(lib.mkRenamedOptionModule
[ "services" "xserver" "desktopManager" "gnome" "sessionPath" ]
[ "services" "desktopManager" "gnome" "sessionPath" ]
)
# flashback options
(lib.mkRenamedOptionModule
[ "services" "xserver" "desktopManager" "gnome" "flashback" "customSessions" ]
[ "services" "desktopManager" "gnome" "flashback" "customSessions" ]
)
(lib.mkRenamedOptionModule
[ "services" "xserver" "desktopManager" "gnome" "flashback" "enableMetacity" ]
[ "services" "desktopManager" "gnome" "flashback" "enableMetacity" ]
)
(lib.mkRenamedOptionModule
[ "services" "xserver" "desktopManager" "gnome" "flashback" "panelModulePackages" ]
[ "services" "desktopManager" "gnome" "flashback" "panelModulePackages" ]
)
(lib.mkRenamedOptionModule (lib.mkRenamedOptionModule
[ "services" "gnome" "core-utilities" "enable" ] [ "services" "gnome" "core-utilities" "enable" ]
[ "services" "gnome" "core-apps" "enable" ] [ "services" "gnome" "core-apps" "enable" ]
@ -101,7 +133,7 @@ in
games.enable = mkEnableOption "GNOME games"; games.enable = mkEnableOption "GNOME games";
}; };
services.xserver.desktopManager.gnome = { services.desktopManager.gnome = {
enable = mkOption { enable = mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
@ -213,8 +245,8 @@ in
system.nixos-generate-config.desktopConfiguration = [ system.nixos-generate-config.desktopConfiguration = [
'' ''
# Enable the GNOME Desktop Environment. # Enable the GNOME Desktop Environment.
services.xserver.displayManager.gdm.enable = true; services.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true; services.desktopManager.gnome.enable = true;
'' ''
]; ];
@ -333,7 +365,7 @@ in
}) })
(lib.mkIf serviceCfg.core-shell.enable { (lib.mkIf serviceCfg.core-shell.enable {
services.xserver.desktopManager.gnome.sessionPath = [ services.desktopManager.gnome.sessionPath = [
pkgs.gnome-shell pkgs.gnome-shell
]; ];

View file

@ -257,7 +257,7 @@ in
dmConf = config.services.xserver.displayManager; dmConf = config.services.xserver.displayManager;
noDmUsed = noDmUsed =
!( !(
dmConf.gdm.enable || cfg.sddm.enable || dmConf.xpra.enable || dmConf.lightdm.enable || cfg.ly.enable cfg.gdm.enable || cfg.sddm.enable || dmConf.xpra.enable || dmConf.lightdm.enable || cfg.ly.enable
); );
in in
lib.mkIf noDmUsed (lib.mkDefault false); lib.mkIf noDmUsed (lib.mkDefault false);

View file

@ -7,19 +7,20 @@
let let
cfg = config.services.xserver.displayManager; cfg = config.services.displayManager.gdm;
gdm = pkgs.gdm; gdm = pkgs.gdm;
xdmcfg = config.services.xserver.displayManager;
pamLogin = config.security.pam.services.login; pamLogin = config.security.pam.services.login;
settingsFormat = pkgs.formats.ini { }; settingsFormat = pkgs.formats.ini { };
configFile = settingsFormat.generate "custom.conf" cfg.gdm.settings; configFile = settingsFormat.generate "custom.conf" cfg.settings;
xSessionWrapper = xSessionWrapper =
if (cfg.setupCommands == "") then if (xdmcfg.setupCommands == "") then
null null
else else
pkgs.writeScript "gdm-x-session-wrapper" '' pkgs.writeScript "gdm-x-session-wrapper" ''
#!${pkgs.bash}/bin/bash #!${pkgs.bash}/bin/bash
${cfg.setupCommands} ${xdmcfg.setupCommands}
exec "$@" exec "$@"
''; '';
@ -41,7 +42,7 @@ let
defaultSessionName = config.services.displayManager.defaultSession; defaultSessionName = config.services.displayManager.defaultSession;
setSessionScript = pkgs.callPackage ./account-service-util.nix { }; setSessionScript = pkgs.callPackage ../x11/display-managers/account-service-util.nix { };
in in
{ {
@ -72,6 +73,35 @@ in
"gdm" "gdm"
"nvidiaWayland" "nvidiaWayland"
] "We defer to GDM whether Wayland should be enabled.") ] "We defer to GDM whether Wayland should be enabled.")
(lib.mkRenamedOptionModule
[ "services" "xserver" "displayManager" "gdm" "enable" ]
[ "services" "displayManager" "gdm" "enable" ]
)
(lib.mkRenamedOptionModule
[ "services" "xserver" "displayManager" "gdm" "debug" ]
[ "services" "displayManager" "gdm" "debug" ]
)
(lib.mkRenamedOptionModule
[ "services" "xserver" "displayManager" "gdm" "banner" ]
[ "services" "displayManager" "gdm" "banner" ]
)
(lib.mkRenamedOptionModule
[ "services" "xserver" "displayManager" "gdm" "settings" ]
[ "services" "displayManager" "gdm" "settings" ]
)
(lib.mkRenamedOptionModule
[ "services" "xserver" "displayManager" "gdm" "wayland" ]
[ "services" "displayManager" "gdm" "wayland" ]
)
(lib.mkRenamedOptionModule
[ "services" "xserver" "displayManager" "gdm" "autoSuspend" ]
[ "services" "displayManager" "gdm" "autoSuspend" ]
)
(lib.mkRenamedOptionModule
[ "services" "xserver" "displayManager" "gdm" "autoLogin" "delay" ]
[ "services" "displayManager" "gdm" "autoLogin" "delay" ]
)
]; ];
meta = { meta = {
@ -82,7 +112,7 @@ in
options = { options = {
services.xserver.displayManager.gdm = { services.displayManager.gdm = {
enable = lib.mkEnableOption "GDM, the GNOME Display Manager"; enable = lib.mkEnableOption "GDM, the GNOME Display Manager";
@ -145,7 +175,7 @@ in
###### implementation ###### implementation
config = lib.mkIf cfg.gdm.enable { config = lib.mkIf cfg.enable {
services.xserver.displayManager.lightdm.enable = false; services.xserver.displayManager.lightdm.enable = false;
@ -170,7 +200,7 @@ in
environment = environment =
{ {
GDM_X_SERVER_EXTRA_ARGS = toString (lib.filter (arg: arg != "-terminate") cfg.xserverArgs); GDM_X_SERVER_EXTRA_ARGS = toString (lib.filter (arg: arg != "-terminate") xdmcfg.xserverArgs);
XDG_DATA_DIRS = lib.makeSearchPath "share" [ XDG_DATA_DIRS = lib.makeSearchPath "share" [
gdm # for gnome-login.session gdm # for gnome-login.session
config.services.displayManager.sessionData.desktops config.services.displayManager.sessionData.desktops
@ -274,7 +304,7 @@ in
systemd.user.services.dbus.wantedBy = [ "default.target" ]; systemd.user.services.dbus.wantedBy = [ "default.target" ];
programs.dconf.profiles.gdm.databases = programs.dconf.profiles.gdm.databases =
lib.optionals (!cfg.gdm.autoSuspend) [ lib.optionals (!cfg.autoSuspend) [
{ {
settings."org/gnome/settings-daemon/plugins/power" = { settings."org/gnome/settings-daemon/plugins/power" = {
sleep-inactive-ac-type = "nothing"; sleep-inactive-ac-type = "nothing";
@ -284,11 +314,11 @@ in
}; };
} }
] ]
++ lib.optionals (cfg.gdm.banner != null) [ ++ lib.optionals (cfg.banner != null) [
{ {
settings."org/gnome/login-screen" = { settings."org/gnome/login-screen" = {
banner-message-enable = true; banner-message-enable = true;
banner-message-text = cfg.gdm.banner; banner-message-text = cfg.banner;
}; };
} }
] ]
@ -297,21 +327,21 @@ in
# Use AutomaticLogin if delay is zero, because it's immediate. # Use AutomaticLogin if delay is zero, because it's immediate.
# Otherwise with TimedLogin with zero seconds the prompt is still # Otherwise with TimedLogin with zero seconds the prompt is still
# presented and there's a little delay. # presented and there's a little delay.
services.xserver.displayManager.gdm.settings = { services.displayManager.gdm.settings = {
daemon = lib.mkMerge [ daemon = lib.mkMerge [
{ WaylandEnable = cfg.gdm.wayland; } { WaylandEnable = cfg.wayland; }
# nested if else didn't work # nested if else didn't work
(lib.mkIf (config.services.displayManager.autoLogin.enable && cfg.gdm.autoLogin.delay != 0) { (lib.mkIf (config.services.displayManager.autoLogin.enable && cfg.autoLogin.delay != 0) {
TimedLoginEnable = true; TimedLoginEnable = true;
TimedLogin = config.services.displayManager.autoLogin.user; TimedLogin = config.services.displayManager.autoLogin.user;
TimedLoginDelay = cfg.gdm.autoLogin.delay; TimedLoginDelay = cfg.autoLogin.delay;
}) })
(lib.mkIf (config.services.displayManager.autoLogin.enable && cfg.gdm.autoLogin.delay == 0) { (lib.mkIf (config.services.displayManager.autoLogin.enable && cfg.autoLogin.delay == 0) {
AutomaticLoginEnable = true; AutomaticLoginEnable = true;
AutomaticLogin = config.services.displayManager.autoLogin.user; AutomaticLogin = config.services.displayManager.autoLogin.user;
}) })
]; ];
debug = lib.mkIf cfg.gdm.debug { debug = lib.mkIf cfg.debug {
Enable = true; Enable = true;
}; };
}; };

View file

@ -31,7 +31,6 @@ in
./lumina.nix ./lumina.nix
./lxqt.nix ./lxqt.nix
./enlightenment.nix ./enlightenment.nix
./gnome.nix
./retroarch.nix ./retroarch.nix
./kodi.nix ./kodi.nix
./mate.nix ./mate.nix
@ -43,6 +42,7 @@ in
./deepin.nix ./deepin.nix
../../desktop-managers/lomiri.nix ../../desktop-managers/lomiri.nix
../../desktop-managers/cosmic.nix ../../desktop-managers/cosmic.nix
../../desktop-managers/gnome.nix
]; ];
options = { options = {

View file

@ -17,7 +17,7 @@ with lib;
services.xserver.videoDrivers = [ ]; services.xserver.videoDrivers = [ ];
# Enable GDM. Any display manager will do as long as it supports XDMCP. # Enable GDM. Any display manager will do as long as it supports XDMCP.
services.xserver.displayManager.gdm.enable = true; services.displayManager.gdm.enable = true;
systemd.sockets.terminal-server = { systemd.sockets.terminal-server = {
description = "Terminal Server Socket"; description = "Terminal Server Socket";

View file

@ -761,7 +761,7 @@ in
dmConf = cfg.displayManager; dmConf = cfg.displayManager;
default = default =
!( !(
dmConf.gdm.enable config.services.displayManager.gdm.enable
|| config.services.displayManager.sddm.enable || config.services.displayManager.sddm.enable
|| dmConf.xpra.enable || dmConf.xpra.enable
|| dmConf.sx.enable || dmConf.sx.enable

View file

@ -610,8 +610,8 @@ rec {
{ ... }: { ... }:
{ {
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.displayManager.gdm.enable = true; services.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true; services.desktopManager.gnome.enable = true;
} }
); );

View file

@ -34,8 +34,8 @@
}; };
# Configure Gnome # Configure Gnome
services.xserver.desktopManager.gnome.enable = true; services.desktopManager.gnome.enable = true;
services.xserver.desktopManager.gnome.debug = true; services.desktopManager.gnome.debug = true;
systemd.user.services = { systemd.user.services = {
"org.gnome.Shell@wayland" = { "org.gnome.Shell@wayland" = {

View file

@ -14,9 +14,9 @@
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.displayManager = { services.displayManager.gdm = {
gdm.enable = true; enable = true;
gdm.debug = true; debug = true;
}; };
services.displayManager.autoLogin = { services.displayManager.autoLogin = {
@ -24,9 +24,9 @@
user = user.name; user = user.name;
}; };
services.xserver.desktopManager.gnome.enable = true; services.desktopManager.gnome.enable = true;
services.xserver.desktopManager.gnome.debug = true; services.desktopManager.gnome.debug = true;
services.xserver.desktopManager.gnome.flashback.enableMetacity = true; services.desktopManager.gnome.flashback.enableMetacity = true;
services.displayManager.defaultSession = "gnome-flashback-metacity"; services.displayManager.defaultSession = "gnome-flashback-metacity";
}; };

View file

@ -16,9 +16,9 @@
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.displayManager = { services.displayManager.gdm = {
gdm.enable = true; enable = true;
gdm.debug = true; debug = true;
}; };
services.displayManager.autoLogin = { services.displayManager.autoLogin = {
@ -26,8 +26,8 @@
user = user.name; user = user.name;
}; };
services.xserver.desktopManager.gnome.enable = true; services.desktopManager.gnome.enable = true;
services.xserver.desktopManager.gnome.debug = true; services.desktopManager.gnome.debug = true;
services.displayManager.defaultSession = "gnome-xorg"; services.displayManager.defaultSession = "gnome-xorg";
systemd.user.services = { systemd.user.services = {

View file

@ -11,9 +11,9 @@
services.xserver.enable = true; services.xserver.enable = true;
services.xserver.displayManager = { services.displayManager.gdm = {
gdm.enable = true; enable = true;
gdm.debug = true; debug = true;
}; };
services.displayManager.autoLogin = { services.displayManager.autoLogin = {
@ -21,8 +21,8 @@
user = "alice"; user = "alice";
}; };
services.xserver.desktopManager.gnome.enable = true; services.desktopManager.gnome.enable = true;
services.xserver.desktopManager.gnome.debug = true; services.desktopManager.gnome.debug = true;
systemd.user.services = { systemd.user.services = {
"org.gnome.Shell@wayland" = { "org.gnome.Shell@wayland" = {

View file

@ -15,8 +15,8 @@
system.nixos-generate-config.desktopConfiguration = [ system.nixos-generate-config.desktopConfiguration = [
'' ''
# DESKTOP # DESKTOP
services.xserver.displayManager.gdm.enable = true; services.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true; services.desktopManager.gnome.enable = true;
'' ''
]; ];
}; };
@ -40,7 +40,7 @@
# Test if the Perl variable $desktopConfiguration is spliced correctly # Test if the Perl variable $desktopConfiguration is spliced correctly
machine.succeed( machine.succeed(
"grep 'services\\.xserver\\.desktopManager\\.gnome\\.enable = true;' /etc/nixos/configuration.nix" "grep 'services\\.desktopManager\\.gnome\\.enable = true;' /etc/nixos/configuration.nix"
) )
machine.succeed("rm -rf /etc/nixos") machine.succeed("rm -rf /etc/nixos")

View file

@ -115,7 +115,7 @@ stdenv.mkDerivation (finalAttrs: {
}) })
# The following patches implement certain environment variables in GDM which are set by # The following patches implement certain environment variables in GDM which are set by
# the gdm configuration module (nixos/modules/services/x11/display-managers/gdm.nix). # the gdm configuration module (gdm.nix).
./gdm-x-session_extra_args.patch ./gdm-x-session_extra_args.patch

View file

@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
libcryptui libcryptui
]; ];
services.xserver.desktopManager.gnome.extraGSettingsOverridePackages = with pkgs; [ services.desktopManager.gnome.extraGSettingsOverridePackages = with pkgs; [
nemo nemo
gcr gcr
libcryptui libcryptui