I'm not having luck getting XMonad to run in 11.10 (x64, fresh install) with a gnome fallback session. I've tried adapting the instructions from
http://markhansen.co.nz/xmonad-ubuntu-lucid/
and
http://markhansen.co.nz/xmonad-ubuntu-oneiric/
but with no luck. If anyone has ideas, I'd like to hear them.
How to use a custom window manager with the GNOME Classic session in 11.10
Exemplified with the sawfish window manager (sorry, I don't use xmonad).
1. Fix gnome-classic.session
There seems to be a bug in gnome-classic.session. Here's how to fix it:
Edit the system file /usr/share/gnome-session/sessions/gnome-classic.session directly or make a copy in your home directory:
Make this change:
2.1. Alternative 1: Set WINDOW_MANAGER in ~/.gnomerc
2.1.a. Create/edit ~/.gnomerc and add this:
Replace "sawfish" in this example with the window manager you want to use. If you now log in with the "GNOME Classic" session, you will get your chosen window manager.
2.1.b. Faster startup:
If you experience a 30 second delay at login with the above solution, the following will fix that (this might just be a sawfish issue).
Make a startup script, e.g. ~/bin/my-gnome-wm:
Make it executable:
Change ~/.gnomerc to this:
2.2. Alternative 2: Use sawfish.desktop
2.2.a. Edit gnome-classic.session again:
Replace "sawfish" in this example with the window manager you want to use. This requires a file like "sawfish.desktop" to be installed in the correct location, e.g. /usr/share/applications/sawfish.desktop.
2.2.b. Faster startup:
If you experience a 30 second delay at login with the above solution, the following will fix that (this might just be a sawfish issue).
Edit the system file /usr/share/applications/sawfish.desktop directly or make a copy in your home directory:
Make this change:
Notes
With DefaultProvider-windowmanager=gnome-wm and without setting WINDOW_MANAGER in .gnomerc, we seem to get both Unity and GNOME Classic at the same time, on top of each other!
This entry in ~/.xsession-errors probably says something about why there is a 30 second delay:
Why create the my-gnome-wm script? Because this doesn't seem to work:
Neither does this:
A quick fix: Log in, then execute
killall metacity & xmonad
.It seems to work, though I'm having intermittent keyboard and mouse issues that may or may not be related to this solution.
Also, given that this works, you'd think I could just swap out the window manager value in /usr/share/gnome-session/sessions/gnome-classic.session, but when I change the value, nothing happens.
For newer Ubuntu versions (e.g. 15.04), this repository is available. To install the needed files:
For Ubuntu 12.04, it almost works "out of the box" -- you need to install gnome panel manually:
and then you can log in using the "GNOME with Xmonad" session from the login screen.
(source: http://www.haskell.org/haskellwiki/Xmonad/Using_xmonad_in_Gnome#Ubuntu_Precise)