On 03/09/2011 03:47 AM, David Witbrodt wrote:
From: Lionel Le Folgoc<mrpo...@gmail.com>
You should have the following env var set:
XDG_MENU_PREFIX=xfce-
Hmmm...
$ echo $XDG_MENU_PREFIX
$
And garcon looks for $d/menus/${XDG_MENU_PREFIX}applications.menu
(with $d in $XDG_CONFIG_DIRS, or /etc if empty).
$ echo $XDG_CONFIG_DIRS
$
As an experiment (having failed, so far, to get Shutdown/Restart buttons
working) I decided to restore any changed files to their original state
and install 'gdm3'. I found that this does, in fact, give me working
buttons (which is not relevant to this bug report) but the menus do not
work any better than they did with 'xdm':
$ echo $XDG_MENU_PREFIX
$ echo $XDG_CONFIG_DIRS
$
That is disappointing. I found that 'gdm3' starts the X server on tty8
instead of tty7.
This is usually set by /etc/xdg/xfce4/xinitrc, spawned by
/usr/bin/startxfce4 (both from xfce4-utils>= 4.8.0).
Since those environment variables do not get set, I'm going to
have to say that 'xdm' bypasses the setup you folks are
expecting to have happen.
Looking at /etc/X11/xdm, I see the following in 'xdm-config':
DisplayManager*startup: /etc/X11/xdm/Xstartup
DisplayManager*session: /etc/X11/xdm/Xsession
DisplayManager*setup: /etc/X11/xdm/Xsetup
DisplayManager*reset: /etc/X11/xdm/Xreset
The 'Xsession' script is a one-liner:
. /etc/X11/Xsession
So, 'xdm' hands off to 'x11-common', which does this
...
SYSSESSIONDIR=/etc/X11/Xsession.d
...
SESSIONFILES=$(run-parts --list $SYSSESSIONDIR)
if [ -n "$SESSIONFILES" ]; then
set +e
for SESSIONFILE in $SESSIONFILES; do
. $SESSIONFILE
done
set -e
fi
Now looking in Xsession.d/, there is '40x11-common_xsessionrc'
which would run ~/.xsession if I had one. I do not.
The fallback seems to be in '50x11-common_determine-startup':
# If there is still nothing to use for a startup program, try the system
# default session manager, window manager, and terminal emulator.
if [ -z "$STARTUP" ]; then
if [ -x /usr/bin/x-session-manager ]; then
STARTUP=x-session-manager
elif [ -x /usr/bin/x-window-manager ]; then
STARTUP=x-window-manager
elif [ -x /usr/bin/x-terminal-emulator ]; then
STARTUP=x-terminal-emulator
fi
fi
Those are not programs but symlinks to the Debian alternatives system:
# la -d /usr/bin/x-*
[...] /usr/bin/x-session-manager -> /etc/alternatives/x-session-manager
[...] /usr/bin/x-terminal-emulator ->
/etc/alternatives/x-terminal-emulator
[...] /usr/bin/x-window-manager -> /etc/alternatives/x-window-manager
[...]
The alternatives seem to be set appropriately:
# la -d /etc/alternatives/x-*
[...] /etc/alternatives/x-session-manager ->
/usr/bin/xfce4-session
[...] /etc/alternatives/x-session-manager.1.gz ->
/usr/share/man/man1/xfce4-session.1.gz
[...] /etc/alternatives/x-terminal-emulator ->
/usr/bin/xfce4-terminal.wrapper
[...] /etc/alternatives/x-terminal-emulator.1.gz ->
/usr/share/man/man1/xfce4-terminal.wrapper.1.gz
[...] /etc/alternatives/x-window-manager -> /usr/bin/xfwm4
[...] /etc/alternatives/x-window-manager.1.gz ->
/usr/share/man/man1/xfwm4.1.gz
[...]
I'm finding the same sort of setup here in /etc/gdm3/Xsession, which
explains why the menus are not working:
[...]
SYSSESSIONDIR=/etc/X11/Xsession.d
[...]
SESSIONFILES=$(run_parts $SYSSESSIONDIR)
if [ -n "$SESSIONFILES" ]; then
for SESSIONFILE in $SESSIONFILES; do
. $SESSIONFILE
done
fi
I could easily be misunderstanding or misinterpretting these scripts,
since I don't have any experience with them, but its clear that, by
default, gdm3 doesn't get anywhere near /etc/xdg/xfce4/xinitrc or I
would have working menus.
The troubleshooting continues...
Dave W.
--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org