diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index f30cbe427f0..eb10d4f428b 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -48,6 +48,10 @@ with lib;
(mkRemovedOptionModule [ "services" "rmilter" "bindInetSockets" ] "Use services.rmilter.bindSocket.* instead")
(mkRemovedOptionModule [ "services" "rmilter" "bindUnixSockets" ] "Use services.rmilter.bindSocket.* instead")
+ # Xsession script
+ (mkRenamedOptionModule [ "services" "xserver" "displayManager" "job" "logsXsession" ] [ "services" "xserver" "displayManager" "job" "logToFile" ])
+ (mkRenamedOptionModule [ "services" "xserver" "displayManager" "logToJournal" ] [ "services" "xserver" "displayManager" "job" "logToJournal" ])
+
# Old Grub-related options.
(mkRenamedOptionModule [ "boot" "initrd" "extraKernelModules" ] [ "boot" "initrd" "kernelModules" ])
(mkRenamedOptionModule [ "boot" "extraKernelParams" ] [ "boot" "kernelParams" ])
diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix
index 3fa482fb672..43ed21c95fe 100644
--- a/nixos/modules/services/x11/display-managers/default.nix
+++ b/nixos/modules/services/x11/display-managers/default.nix
@@ -59,12 +59,6 @@ let
# Now it should be safe to assume that the script was called with the
# expected parameters.
- ${optionalString cfg.displayManager.logToJournal ''
- if [ -z "$_DID_SYSTEMD_CAT" ]; then
- _DID_SYSTEMD_CAT=1 exec ${config.systemd.package}/bin/systemd-cat -t xsession -- "$0" "$@"
- fi
- ''}
-
. /etc/profile
cd "$HOME"
@@ -72,16 +66,23 @@ let
sessionType="$1"
if [ "$sessionType" = default ]; then sessionType=""; fi
- ${optionalString (!cfg.displayManager.job.logsXsession && !cfg.displayManager.logToJournal) ''
- exec > ~/.xsession-errors 2>&1
- ''}
-
${optionalString cfg.startDbusSession ''
if test -z "$DBUS_SESSION_BUS_ADDRESS"; then
exec ${pkgs.dbus.dbus-launch} --exit-with-session "$0" "$sessionType"
fi
''}
+ ${optionalString cfg.displayManager.job.logToJournal ''
+ if [ -z "$_DID_SYSTEMD_CAT" ]; then
+ export _DID_SYSTEMD_CAT=1
+ exec ${config.systemd.package}/bin/systemd-cat -t xsession "$0" "$sessionType"
+ fi
+ ''}
+
+ ${optionalString cfg.displayManager.job.logToFile ''
+ exec &> >(tee ~/.xsession-errors)
+ ''}
+
# Start PulseAudio if enabled.
${optionalString (config.hardware.pulseaudio.enable) ''
${optionalString (!config.hardware.pulseaudio.systemWide)
@@ -306,26 +307,24 @@ in
description = "Additional environment variables needed by the display manager.";
};
- logsXsession = mkOption {
+ logToFile = mkOption {
type = types.bool;
default = false;
description = ''
- Whether the display manager redirects the
- output of the session script to
- ~/.xsession-errors.
+ Whether the display manager redirects the output of the
+ session script to ~/.xsession-errors.
'';
};
- };
+ logToJournal = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Whether the display manager redirects the output of the
+ session script to the systemd journal.
+ '';
+ };
- logToJournal = mkOption {
- type = types.bool;
- default = true;
- description = ''
- By default, the stdout/stderr of sessions is written
- to ~/.xsession-errors. When this option
- is enabled, it will instead be written to the journal.
- '';
};
};
diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix
index 1733f2fd39b..b5e93683091 100644
--- a/nixos/modules/services/x11/display-managers/lightdm.nix
+++ b/nixos/modules/services/x11/display-managers/lightdm.nix
@@ -190,7 +190,7 @@ in
services.xserver.displayManager.slim.enable = false;
services.xserver.displayManager.job = {
- logsXsession = true;
+ logToFile = true;
# lightdm relaunches itself via just `lightdm`, so needs to be on the PATH
execCmd = ''
diff --git a/nixos/modules/services/x11/display-managers/sddm.nix b/nixos/modules/services/x11/display-managers/sddm.nix
index facaea131ae..2d4cb8aa20a 100644
--- a/nixos/modules/services/x11/display-managers/sddm.nix
+++ b/nixos/modules/services/x11/display-managers/sddm.nix
@@ -205,7 +205,7 @@ in
services.xserver.displayManager.slim.enable = false;
services.xserver.displayManager.job = {
- logsXsession = true;
+ logToFile = true;
environment = {
# Load themes from system environment
diff --git a/nixos/modules/services/x11/display-managers/xpra.nix b/nixos/modules/services/x11/display-managers/xpra.nix
index 8f5ce3dccc6..b46ede550c1 100644
--- a/nixos/modules/services/x11/display-managers/xpra.nix
+++ b/nixos/modules/services/x11/display-managers/xpra.nix
@@ -220,7 +220,7 @@ in
'';
services.xserver.displayManager.job = {
- logsXsession = true;
+ logToFile = true;
execCmd = ''
${optionalString (cfg.pulseaudio)