Kdm session manager

Luca liliana.perossa at fastwebnet.it
Thu Sep 28 08:06:31 BST 2006


James Richard Tyrer wrote:
> 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).
>
>   
Thanks, for now I have managed to comment the entries in Xsession and in
the gnome-<version>.desktop files I call to execute the script for the
gnome-session.
In each gnome-<version>/bin I placed a script like you suggested like
this one (example for gnome-2.14.2):
startgnome-2.14.2
> #!/bin/sh
> # Begin script to start gnome-2.14.2
>
> export PATH=/opt/gnome-2.14.2/bin:$PATH
> export PKG_CONFIG_PATH=/opt/gnome-2.14.2/lib/pkgconfig:$PKG_CONFIG_PATH
> export LD_LIBRARY_PATH=/opt/gnome-2.14.2/lib:$LD_LIBRARY_PATH
> # export HOME=$HOME/.gnome-2.14.2
> export BINDIR=/opt/gnome-2.14.2/sbin
> export SBINDIR=/opt/gnome-2.14.2/sbin
> export LIBEXECDIR=/opt/gnome-2.14.2/lib/gdm
> export XDG_CONFIG_DIRS=/etc/gnome-2.14.2/xdg:$XDG_CONFIG_DIRS
>
> dbus-launch --exit-with-session /opt/gnome-2.14.2/bin/gnome-session
>
> # End gnome-2.14.2 script

and the gnome-2.14.2.desktop file looks like that:
[Desktop Entry]
Encoding=UTF-8
Name=GNOME with D-BUS
Commect=GNOME Desktop with D-BUS support
Exec=/opt/gnome-2.14.2/bin/startgnome-2.14.2
TryExec=/opt/gnome-2.14.2/bin/startgnome-2.14.2
Icon=
Type=Application

Script and desktop file for gnome-2.16.0 are like these with the obvious
changes pointing to gnome-2.16.0.
Now it finally works.

Thanks a lot,
Luca
___________________________________________________
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