summary refs log tree commit diff
path: root/pkgs/desktops/gnome-3/core
diff options
context:
space:
mode:
authorTor Hedin Brønner <torhedinbronner@gmail.com>2019-10-06 07:08:11 +0200
committerTor Hedin Brønner <torhedinbronner@gmail.com>2019-10-06 07:35:36 +0200
commita43660271b658ad067906c10f01473cf88871c2e (patch)
treeabcddaf22b8bba7bc1d4073d15a6726cdfbe554f /pkgs/desktops/gnome-3/core
parentee06d27cf23aa59fec01d47e3cfea12ae3c9f7c7 (diff)
downloadnixpkgs-a43660271b658ad067906c10f01473cf88871c2e.tar
nixpkgs-a43660271b658ad067906c10f01473cf88871c2e.tar.gz
nixpkgs-a43660271b658ad067906c10f01473cf88871c2e.tar.bz2
nixpkgs-a43660271b658ad067906c10f01473cf88871c2e.tar.lz
nixpkgs-a43660271b658ad067906c10f01473cf88871c2e.tar.xz
nixpkgs-a43660271b658ad067906c10f01473cf88871c2e.tar.zst
nixpkgs-a43660271b658ad067906c10f01473cf88871c2e.zip
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.
Diffstat (limited to 'pkgs/desktops/gnome-3/core')
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch4
1 files changed, 3 insertions, 1 deletions
diff --git a/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch
index fe4feaf7085..2399c656016 100644
--- a/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch
+++ b/pkgs/desktops/gnome-3/core/gnome-session/fix-paths.patch
@@ -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