summaryrefslogtreecommitdiff
path: root/daemon/gdm-wayland-session.c
diff options
context:
space:
mode:
Diffstat (limited to 'daemon/gdm-wayland-session.c')
-rw-r--r--daemon/gdm-wayland-session.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/daemon/gdm-wayland-session.c b/daemon/gdm-wayland-session.c
index 79922664..650e180f 100644
--- a/daemon/gdm-wayland-session.c
+++ b/daemon/gdm-wayland-session.c
@@ -283,11 +283,22 @@ spawn_session (State *state,
gboolean is_running = FALSE;
int ret;
char **argv = NULL;
- static const char *session_variables[] = { "DISPLAY",
- "XAUTHORITY",
+ static const char *session_variables[] = { "DESKTOP_SESSION",
+ "DISPLAY",
+ "GDMSESSION",
+ "GDM_LANG",
+ "GNOME_SHELL_SESSION_MODE",
+ "LANG",
"WAYLAND_DISPLAY",
"WAYLAND_SOCKET",
- "GNOME_SHELL_SESSION_MODE",
+ "WINDOWPATH",
+ "XAUTHORITY",
+ "XDG_CURRENT_DESKTOP",
+ "XDG_SEAT",
+ "XDG_SESSION_ID",
+ "XDG_SESSION_CLASS",
+ "XDG_SESSION_DESKTOP",
+ "XDG_VTNR",
NULL };
g_debug ("Running wayland session");
@@ -326,8 +337,11 @@ spawn_session (State *state,
/* Don't allow session specific environment variables from earlier sessions to
* leak through */
for (i = 0; session_variables[i] != NULL; i++) {
- if (g_getenv (session_variables[i]) == NULL) {
+ const char *value = g_getenv (session_variables[i]);
+ if (value == NULL) {
g_subprocess_launcher_unsetenv (launcher, session_variables[i]);
+ } else {
+ g_subprocess_launcher_setenv (launcher, session_variables[i], value, TRUE);
}
}
}