RHEL6 GDM Sessions Workaround
Update: ilaiho has provided a better solution in the comments,
which is to install the
xorg-x11-xinit-session package, which adds
a "User script" session option. This will invoke your (executable)
~/.Xclients configs, if selected, and works well,
so I'd recommend you go that route instead of using this patch now.
The GDM Greeter in RHEL6 seems to have lost the ability to select
'session types' (or window managers), which apparently means you're
stuck using Gnome, even if you have other better options installed.
One workaround is to install KDM instead, and set
/etc/sysconfig/desktop config, as KDM does still support
selectable session types.
Since I've become a big fan of tiling window managers in general, and ion in particular, this was pretty annoying, so I wasted a few hours today working through the /etc/X11 scripts and figuring out how they hung together on RHEL6.
So for any other gnome-haters out there who don't want to have to
go to KDM, here's a patch to
/etc/X11/xinit/Xsession that ignores
the default 'gnome-session' set by GDM, which allows proper window
manager selection either by user
or by the
/etc/sysconfig/desktop DISPLAY setting.
diff --git a/xinit/Xsession b/xinit/Xsession index e12e0ee..ab94d28 100755 --- a/xinit/Xsession +++ b/xinit/Xsession @@ -30,6 +30,14 @@ SWITCHDESKPATH=/usr/share/switchdesk # Xsession and xinitrc scripts which has been factored out to avoid duplication . /etc/X11/xinit/xinitrc-common +# RHEL6 GDM doesn't seem to support selectable sessions, and always requests a +# gnome-session. So we unset this default here, to allow things like user +# .xsession or .Xclients files to be checked, and /etc/sysconfig/desktop +# settings (via /etc/X11/xinit/Xclients) honoured. +if [ -n "$GDMSESSION" -a $# -eq 1 -a "$1" = gnome-session ]; then + shift +fi + # This Xsession.d implementation, is intended to obsolte and replace the # various mechanisms present in the 'case' statement which follows, and to # eventually be able to easily remove all hard coded window manager specific
Apply as root:
cd /etc/X11 patch -p1 < /tmp/xsession.patch