diff options
Diffstat (limited to 'daemon/gdm-wayland-session.c')
-rw-r--r-- | daemon/gdm-wayland-session.c | 22 |
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); } } } |