On 1/22/07, Randy McMurchy <[EMAIL PROTECTED]> wrote:
> Dan Nicholson wrote these words on 01/22/07 08:59 CST:
>
> > Any takers?
>
> I am willing to contribute whatever information you need from my
> GNOME and KDE installation. As I mentioned before, when running
> KDE I don't set *any* XDG stuff (and KDE responds the same if I
> define the XDG stuff to point to default and KDE locations).
>
> For GNOME, I set:
>
> XDG_DATA_DIRS=/usr/share:$GNOME_PREFIX/share
> XDG_CONFIG_DIRS=/usr/share:/etc/gnome-$GNOME_VERSION/xdg
> export XDG_DATA_DIRS XDG_CONFIG_DIRS
>
> And GNOME seems to run exactly as expected. It's been so long since
> I tried to run GNOME *without* the XDG stuff set, that I cannot
> remember the outcome. I'll try it if you think it could be helpful.
>
> Let me know what else I can provide or try out that might be helpful.
Thanks. As I mentioned in our private email chain, the issue seems to
be that each desktop environment implements the spec differently. For
instance, XFCE (and I believe KDE) will add $prefix/share to the data
directories and $sysconfdir/xdg to the config directories. Glib does
not do this. It uses the defaults (/usr/share:/usr/local/share and
/etc/xdg) or whatever is in the XDG_* variables. So, if you install
gnome in /opt/gnome and /etc/gnome, it doesn't do anything special to
know about those locations. That's why I think you always need to set
them for GNOME unless you install into /usr and /etc.
I think that for maximum compatibility, we should explicitly set the
XDG variables. So, if you have KDE apps in /opt/kde, when you start a
GNOME session, the menus will still be populated with KDE apps.
So, the test is this. If you have KDE in /opt/kde without
/opt/kde/share in XDG_DATA_DIRS, do you still see the applications in
the GNOME menus? You can also go the other direction if you have GNOME
in /opt/gnome and start a KDE session.
Looking forward, I believe the situation would be resolved with the
following changes.
XFCE:
Just setting --sysconfdir=/etc when building libxfce4util will pull in
all the correct information since it's installed in /usr.
GNOME:
Add the following to the system configuration.
export XDG_CONFIG_DIRS=/etc/gnome:${XDG_CONFIG_DIRS-/etc/xdg}
GNOME_PREFIX=/where/you/installed/it
if [ "$GNOME_PREFIX" != /usr ]; then
export
XDG_DATA_DIRS=$GNOME_PREFIX/share:${XDG_DATA_DIRS-/usr/share:/usr/local/share}
fi
KDE:
Same as GNOME, but s/GNOME_PREFIX/KDE_PREFIX/
Obviously, the shell tests can be replaced with text saying the
equivalent. This way, the XDG variables should know about all your
applications and config settings regardless of which desktop
environment you start.
--
Dan
--
http://linuxfromscratch.org/mailman/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page