Skip to content

Commit 46b5a40

Browse files
committed
try using startup command in /usr/share/xsessions
gnome shell has a way to start different desktop profiles, but all use the same gnome-session binary. also XDG somehow explects that the DESKTOP_SESSION environment variable is set. This value is derived from the .desktop file name in /usr/share/xsessions There is also a XDG_CURRENT_DESKTOP that comes from that file on debian/ubuntu setting STARTUP should work, not sure about other distros.
1 parent 29ef7f8 commit 46b5a40

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

sesman/startwm.sh

+17
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,23 @@ wm_start()
6262
. /etc/default/locale
6363
export LANG LANGUAGE
6464
fi
65+
66+
# DESKTOP_SESSION should be set in sesman.ini in the SessionVariables section.
67+
# If DESKTOP_SESSION is not set the first available configuration in /usr/share/xsessions
68+
# will be used instead
69+
if [ -d /usr/share/xsessions ]; then
70+
if [ -z $DESKTOP_SESSION ]; then
71+
choosenSession=`ls -1 /usr/share/xsessions/*.desktop | head -n 1`
72+
DESKTOP_SESSION=${choosenSession##*/}
73+
DESKTOP_SESSION=${DESKTOP_SESSION%%.desktop}
74+
export DESKTOP_SESSION
75+
fi
76+
STARTUP=`grep ^Exec= /usr/share/xsessions/$DESKTOP_SESSION.desktop`
77+
STARTUP=${STARTUP#Exec=*}
78+
XDG_CURRENT_DESKTOP=`grep ^DesktopNames= /usr/share/xsessions/$DESKTOP_SESSION.desktop`
79+
XDG_CURRNET_DESKTOP=${DesktopNames#DesktopNames=*}
80+
export XDG_CURRENT_DESKTOP
81+
fi
6582

6683
# debian
6784
if [ -r /etc/X11/Xsession ]; then

0 commit comments

Comments
 (0)