gnome3.gnome-session: always run /etc/set-environment on startup
gnomes-session sources its environment from a login shell. But if the systemd user environment already contains `__NIXOS_SET_ENVIRONMENT_DONE` the environment setup won't happen correctly. Simply unset this variable to ensure a fresh environment. This was previously handled by a GDM patch, but it no longer works reliably with gnome-sessions systemd session. We still need the GDM patch to handle running other sessions (eg. plasma). See https://github.com/NixOS/nixpkgs/issues/48255 for more info on the underlying issue.
This commit is contained in:
parent
ee06d27cf2
commit
a43660271b
@ -1,6 +1,6 @@
|
||||
--- a/gnome-session/gnome-session.in
|
||||
+++ b/gnome-session/gnome-session.in
|
||||
@@ -3,11 +3,11 @@
|
||||
@@ -3,11 +3,13 @@
|
||||
if [ "x$XDG_SESSION_TYPE" = "xwayland" ] &&
|
||||
[ "x$XDG_SESSION_CLASS" != "xgreeter" ] &&
|
||||
[ -n "$SHELL" ] &&
|
||||
@ -12,6 +12,8 @@
|
||||
+ ! (echo "$SHELL" | @grep@ -q "nologin"); then
|
||||
if [ "$1" != '-l' ]; then
|
||||
- exec bash -c "exec -l '$SHELL' -c '$0 -l $*'"
|
||||
+ # Make sure the shell actually sets up the environment
|
||||
+ unset __NIXOS_SET_ENVIRONMENT_DONE
|
||||
+ exec @bash@ -c "exec -l '$SHELL' -c '$0 -l $*'"
|
||||
else
|
||||
shift
|
||||
|
Loading…
Reference in New Issue
Block a user