[Pkg-xfce-devel] Bug#617470: Results of experimenting with gdm3
Dave Witbrodt
dawitbro at sbcglobal.net
Thu Mar 10 11:59:06 UTC 2011
On 03/09/2011 03:47 AM, David Witbrodt wrote:
>> From: Lionel Le Folgoc<mrpouit at 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.
More information about the Pkg-xfce-devel
mailing list