diff --git a/nixos/modules/services/display-managers/gdm.nix b/nixos/modules/services/display-managers/gdm.nix index dd043cbf272a..b10c60436919 100644 --- a/nixos/modules/services/display-managers/gdm.nix +++ b/nixos/modules/services/display-managers/gdm.nix @@ -455,6 +455,22 @@ in settings.conffile = "/etc/pam/environment"; settings.readenv = 0; } + # make sure the spawned session has the same variables as `display-manager.service` + # https://github.com/NixOS/nixpkgs/issues/523332 + { + name = "env-greeter"; + control = "required"; + modulePath = "${config.security.pam.package}/lib/security/pam_env.so"; + settings.conffile = + let + env = config.services.displayManager.generic.environment; + in + pkgs.writeText "gdm-launch-environment-env-conf" '' + PATH DEFAULT="''${PATH}:${pkgs.gnome-session}/bin" + XDG_DATA_DIRS DEFAULT="''${XDG_DATA_DIRS}:${env.XDG_DATA_DIRS}" + ''; + settings.readenv = 0; + } { name = "systemd"; control = "optional";