diff options
author | WORLDofPEACE <worldofpeace@protonmail.ch> | 2020-09-08 21:29:24 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-08 21:29:24 -0400 |
commit | e044909abaaade802ae019e937bb8d671b3065a7 (patch) | |
tree | 182aeea1f2427ceb86261b2596dd7972ffb3b03e /nixos/modules/services/x11/display-managers/default.nix | |
parent | ff7e38b9542a4c6efbc7a935149397c06dfac474 (diff) | |
parent | 660882d8830153422a79d6cbea45f2dbe272cf21 (diff) | |
download | nixpkgs-e044909abaaade802ae019e937bb8d671b3065a7.tar nixpkgs-e044909abaaade802ae019e937bb8d671b3065a7.tar.gz nixpkgs-e044909abaaade802ae019e937bb8d671b3065a7.tar.bz2 nixpkgs-e044909abaaade802ae019e937bb8d671b3065a7.tar.lz nixpkgs-e044909abaaade802ae019e937bb8d671b3065a7.tar.xz nixpkgs-e044909abaaade802ae019e937bb8d671b3065a7.tar.zst nixpkgs-e044909abaaade802ae019e937bb8d671b3065a7.zip |
Merge pull request #93764 from evenbrenden/xdg-session-id-user-units
nixos/displayManager: add XDG_SESSION_ID to systemd user environment
Diffstat (limited to 'nixos/modules/services/x11/display-managers/default.nix')
-rw-r--r-- | nixos/modules/services/x11/display-managers/default.nix | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix index b8b36aa0532..08ce8edd661 100644 --- a/nixos/modules/services/x11/display-managers/default.nix +++ b/nixos/modules/services/x11/display-managers/default.nix @@ -55,13 +55,6 @@ let exec &> >(tee ~/.xsession-errors) ''} - # Tell systemd about our $DISPLAY and $XAUTHORITY. - # This is needed by the ssh-agent unit. - # - # Also tell systemd about the dbus session bus address. - # This is required by user units using the session bus. - /run/current-system/systemd/bin/systemctl --user import-environment DISPLAY XAUTHORITY DBUS_SESSION_BUS_ADDRESS - # Load X defaults. This should probably be safe on wayland too. ${xorg.xrdb}/bin/xrdb -merge ${xresourcesXft} if test -e ~/.Xresources; then @@ -70,6 +63,12 @@ let ${xorg.xrdb}/bin/xrdb -merge ~/.Xdefaults fi + # Import environment variables into the systemd user environment. + ${optionalString (cfg.displayManager.importedVariables != []) ( + "/run/current-system/systemd/bin/systemctl --user import-environment " + + toString (unique cfg.displayManager.importedVariables) + )} + # Speed up application start by 50-150ms according to # http://kdemonkey.blogspot.nl/2008/04/magic-trick.html rm -rf "$HOME/.compose-cache" @@ -289,6 +288,14 @@ in ''; }; + importedVariables = mkOption { + type = types.listOf (types.strMatching "[a-zA-Z_][a-zA-Z0-9_]*"); + visible = false; + description = '' + Environment variables to import into the systemd user environment. + ''; + }; + job = { preStart = mkOption { @@ -393,6 +400,16 @@ in services.xserver.displayManager.xserverBin = "${xorg.xorgserver.out}/bin/X"; + services.xserver.displayManager.importedVariables = [ + # This is required by user units using the session bus. + "DBUS_SESSION_BUS_ADDRESS" + # These are needed by the ssh-agent unit. + "DISPLAY" + "XAUTHORITY" + # This is required to specify session within user units (e.g. loginctl lock-session). + "XDG_SESSION_ID" + ]; + systemd.user.targets.graphical-session = { unitConfig = { RefuseManualStart = false; |