summaryrefslogtreecommitdiffstats
path: root/desktop/gnome-session/0002-gnome-session-add-profile-sourcing.patch
blob: 5f273536e3b4d8957150968f45f4102154721dd8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
diff -Naur gnome-session-42.0/gnome-session/gnome-session.in gnome-session-42.0-patched/gnome-session/gnome-session.in
--- gnome-session-42.0/gnome-session/gnome-session.in	2022-08-03 19:15:53.227967625 -0000
+++ gnome-session-42.0-patched/gnome-session/gnome-session.in	2022-08-03 19:17:49.002962878 -0000
@@ -10,6 +10,58 @@
     exec bash -c "exec -l '$SHELL' -c '$0 -l $*'"
   else
     shift
+
+    # Source some profile scripts in gnome so we dont have to
+    # depend on a systemd locale service.
+    # This code was copied from KDE's "wayland-session" script.
+    # Copyright (C) 2015-2016 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
+    # This file is extracted from kde-workspace (kdm/kfrontend/genkdmconf.c)
+    # Copyright (C) 2001-2005 Oswald Buddenhagen <ossi@kde.org>
+    # Added to gnome's "gnome-session" script by Bob Funk <bobfunk11@gmail.com>
+    # Note that the respective logout scripts are not sourced.
+    case $SHELL in
+      */bash)
+        [ -z "$BASH" ] && exec $SHELL $0 "$@"
+        set +o posix
+        [ -f /etc/profile ] && . /etc/profile
+        if [ -f $HOME/.bash_profile ]; then
+          . $HOME/.bash_profile
+        elif [ -f $HOME/.bash_login ]; then
+          . $HOME/.bash_login
+        elif [ -f $HOME/.profile ]; then
+          . $HOME/.profile
+        fi
+      ;;
+      */zsh)
+        [ -z "$ZSH_NAME" ] && exec $SHELL $0 "$@"
+        [ -d /etc/zsh ] && zdir=/etc/zsh || zdir=/etc
+        zhome=${ZDOTDIR:-$HOME}
+        # zshenv is always sourced automatically.
+        [ -f $zdir/zprofile ] && . $zdir/zprofile
+        [ -f $zhome/.zprofile ] && . $zhome/.zprofile
+        [ -f $zdir/zlogin ] && . $zdir/zlogin
+        [ -f $zhome/.zlogin ] && . $zhome/.zlogin
+        emulate -R sh
+      ;;
+      */csh|*/tcsh)
+        # [t]cshrc is always sourced automatically.
+        # Note that sourcing csh.login after .cshrc is non-standard.
+        wlsess_tmp=`mktemp /tmp/wlsess-env-XXXXXX`
+        $SHELL -c "if (-f /etc/csh.login) source /etc/csh.login; if (-f ~/.login) source ~/.login; /bin/sh -c 'export -p' >! $wlsess_tmp"
+        . $wlsess_tmp
+        rm -f $wlsess_tmp
+      ;;
+      */fish)
+        xsess_tmp=`mktemp /tmp/xsess-env-XXXXXX`
+        $SHELL --login -c "/bin/sh -c 'export -p' > $xsess_tmp"
+        . $xsess_tmp
+        rm -f $xsess_tmp
+      ;;
+      *) # Plain sh, ksh, and anything we do not know.
+        [ -f /etc/profile ] && . /etc/profile
+        [ -f $HOME/.profile ] && . $HOME/.profile
+      ;;
+  esac
   fi
 fi