Kdm session manager
James Richard Tyrer
tyrerj at acm.org
Thu Sep 28 06:39:45 BST 2006
Luca wrote:
> James Richard Tyrer wrote:
>> Luca wrote:
>>
>>> Hi!
>>>
>>> I have installed kde-3.5.4, xfce4, metacity, gnome-2.14.2 and
>>> gnome-2.16.0 and I use kdm as login manager. I created the desktop files
>>> for the sessions but I am unable to start gnome-2.16.0.
>>> Kde-3.5.4 is installed in /opt/kde-3.5.4 with a symlink /opt/kde
>>> pointing to it, gnome-2.14.2 is installed in /opt/gnome-2.14.2 with a
>>> symlink /opt/gnome pointing to it, gnome-2.16.0 is installed in
>>> /opt/gnome-2.16.0, xfce4 is installed in /usr and metacity is installed
>>> in /usr.
>>>
>>> Since I use to launch dbus-daemon with gnome my gnome-xxx desktop files
>>> looks so:
>>> gnome-dbus.desktop
>>> [Desktop Entry]
>>> Encoding=UTF-8
>>> Name=GNOME with D-BUS
>>> Comment=GNOME Desktop with D-BUS support
>>> Exec=dbus-launch --exit-with-session gnome-session
>>> TryExec=/usr/bin/dbus-launch
>>> Icon=
>>> Type=Application
>>>
>>> gnome-2.16.0-dbus.desktop
>>> [Desktop Entry]
>>> Encoding=UTF-8
>>> Name=GNOME 2.16.0 with D-BUS
>>> Comment=GNOME 2.16.0 Desktop with D-BUS support
>>> Exec=dbus-launch --exit-with-session /opt/gnome-2.16.0/bin/gnome-session
>>> TryExec=/usr/bin/dbus-launch
>>> Icon=
>>> Type=Application
>>>
>>> How do I manage to start the different sessions?
>>> I also tried to modify /opt/kde-3.5.4/share/config/kdm/Xsession in this way:
>>> case $session in
>>> "")
>>> exec xmessage -center -buttons OK:0 -default OK "Sorry,
>>> $DESKTOP_SESSION is no valid session."
>>> ;;
>>> failsafe)
>>> exec xterm -geometry 80x24-0-0
>>> ;;
>>> custom)
>>> exec $HOME/.xsession
>>> ;;
>>> default)
>>> exec /opt/kde-3.5.4/bin/startkde
>>> ;;
>>> Gnome-2.14.2)
>>> export BINDIR=/opt/gnome-2.14.2/sbin
>>> export HOME=$HOME/.gnome-2.14.2
>>> export SBINDIR=/opt/gnome-2.14.2/sbin
>>> export LIBEXECDIR=/opt/gnome-2.14.2/lib/gdm
>>> export PATH=/bin:/usr/bin:/usr/X11R7/bin:$GNOMEDIR
>>> exec /opt/gnome-2.14.2/bin/gnome-session
>>> ;;
>>> Gnome-2.16.0)
>>> export BINDIR=/opt/gnome-2.16.0/sbin
>>> export HOME=$HOME/.gnome-2.16.0
>>> export SBINDIR=/opt/gnome-2.16.0/sbin
>>> export LIBEXECDIR=/opt/gnome-2.16.0/lib/gdm
>>> export PATH=/bin:/usr/bin:/usr/X11R7/bin:$GNOMEDIR
>>> exec /opt/gnome-2.16.0/bin/gnome-session
>>> ;;
>>> *)
>>> eval exec "$session"
>>> ;;
>>> esac
>>> exec xmessage -center -buttons OK:0 -default OK "Sorry, cannot execute
>>> $session. Check $DESKTOP_SESSION.desktop."
>>>
>>> Still I am unable to start gnome-2.16.0, and just a note when I start
>>> gnome-2.14.2 it seems to load in background some things of gnome-2.16.0,
>>> I have two trash icons.
>>>
>> If you are going to directly execute "gnome-session" the stuff you put
>> in the: "gnome-xxx.desktop" is not relevant since it is NOT executed.
>>
>> I don't think that you want to change HOME and I have no idea if setting
>> BINDIR, SBINDIR, & LIBEXECDIR does anything at all except to take up
>> space. Stuff in the environment doesn't do any good unless something
>> reads it.
>>
>> What is: GNOMEDIR? IAC, the directory "/opt/gnome-<version>/bin" needs
>> to go at the _start_ of the PATH. If there is stuff in:
>> "/opt/gnome-<version>/sbin" you might need to add that as well although
>> normally, only root uses it.
>>
>> Then, you have two sets of GNOME libraries. You must use the correct
>> ones. To control this, you must set the environment variable
>> LD_LIBRARY_PATH.
>>
>> LD_LIBRARY_PATH=/opt/gnome-<version>/lib
>> export LD_LIBRARY_PATH
>>
>> There are other issues so I would recommend that rather than putting
>> this stuff in your "Xsession" script that you write a short script to
>> start GNOME -- one script for each version.
>>
>> I find that to run GNOME that I must set: XDG_CONFIG_DIRS.
>>
>>
> Thanks James I'll try that, however is it possible to export the
> variables in the gnome-<version>.desktop files instead of creating a
> script to start one or another?
In theory, you can execute multiple commands with "Exec=<command line>",
however, KDE tends to balk at long command lines in 'desktop' files.
Also, you are going to need some punctuation between commands just like
on the shell command line. Either:
<command 1> && <command 2>
or
<command 1>: <command 2>
I would use the first one in this case (with "&&") since this makes it
dependent -- "<command 2> will only execute if "<command 1>" works (i.e.
no error code on exit).
--
JRT
___________________________________________________
This message is from the kde mailing list.
Account management: https://mail.kde.org/mailman/listinfo/kde.
Archives: http://lists.kde.org/.
More info: http://www.kde.org/faq.html.
More information about the kde
mailing list