diff --git a/nixos/doc/manual/release-notes/rl-1909.xml b/nixos/doc/manual/release-notes/rl-1909.xml
index f9cea242c153c..d4f3494661480 100644
--- a/nixos/doc/manual/release-notes/rl-1909.xml
+++ b/nixos/doc/manual/release-notes/rl-1909.xml
@@ -449,9 +449,9 @@
- is now disabled by default if stateVersion is 19.09 or higher.
- Previously the xterm desktopManager was enabled when xserver was enabled, but it isn't useful for all people so it didn't make sense to
- have any desktopManager enabled default.
+ is now replaced by .
+ Previously the xterm desktopManager was enabled when xserver was enabled, but it isn't useful for everyone and was confusing to new users.
+ defaults to showing the user an error message describing how to configure a working X session.
diff --git a/nixos/modules/services/x11/desktop-managers/default.nix b/nixos/modules/services/x11/desktop-managers/default.nix
index dfb84113e130e..16e584044bb26 100644
--- a/nixos/modules/services/x11/desktop-managers/default.nix
+++ b/nixos/modules/services/x11/desktop-managers/default.nix
@@ -20,7 +20,7 @@ in
imports = [
./none.nix ./xterm.nix ./xfce.nix ./xfce4-14.nix ./plasma5.nix ./lumina.nix
./lxqt.nix ./enlightenment.nix ./gnome3.nix ./kodi.nix ./maxx.nix
- ./mate.nix ./pantheon.nix ./surf-display.nix
+ ./mate.nix ./pantheon.nix ./surf-display.nix ./xsession.nix
];
options = {
diff --git a/nixos/modules/services/x11/desktop-managers/xsession.nix b/nixos/modules/services/x11/desktop-managers/xsession.nix
new file mode 100644
index 0000000000000..05355e6128603
--- /dev/null
+++ b/nixos/modules/services/x11/desktop-managers/xsession.nix
@@ -0,0 +1,33 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+ cfg = config.services.xserver.desktopManager.xsession;
+
+in
+
+{
+ options = {
+
+ services.xserver.desktopManager.xsession.enable = mkOption {
+ type = types.bool;
+ default = true;
+ description = "Enable ~/.xsession as a desktop manager.";
+ };
+
+ };
+
+ config = mkIf cfg.enable {
+
+ services.xserver.desktopManager.session = singleton
+ { name = "xsession";
+ start = ''
+ ${pkgs.gnome3.zenity}/bin/zenity --error --text 'The user must provide a ~/.xsession file containing session startup commands.' --no-wrap
+ '';
+ };
+
+ };
+
+}
diff --git a/nixos/modules/services/x11/desktop-managers/xterm.nix b/nixos/modules/services/x11/desktop-managers/xterm.nix
index 1408df3129503..62eefd6e0914d 100644
--- a/nixos/modules/services/x11/desktop-managers/xterm.nix
+++ b/nixos/modules/services/x11/desktop-managers/xterm.nix
@@ -13,7 +13,7 @@ in
services.xserver.desktopManager.xterm.enable = mkOption {
type = types.bool;
- default = (versionOlder config.system.stateVersion "19.09");
+ default = false;
description = "Enable a xterm terminal as a desktop manager.";
};