I have discovered that the culprit is, in fact,
/usr/share/gnome-session/sessions/xmonad.session or equivalent file.
Create or edit the file
/usr/share/gnome-session/sessions/xmonad.session to be:
The important line is the last one.
DesktopName must have the value
Unity, even if you do not use it.
Also, create or edit
/usr/share/xsessions/gnome-xmonad.desktop to the following:
Name=GNOME with Xmonad
Comment=A GNOME fallback mode session using xmonad as the window manager.
At login, choose GNOME with Xmonad from the session dropdown.
Everything, including themes, the desktop background and other minor things should work as expected.
Edit: if this does not seem to work, run gnome-session-properties (Startup Applications) and add
gnome-settings-daemon to the list. (It's unlikely that this will work but it's worth a try.)
For newer versions of Ubuntu, try the following for
If the first doesn't work, I'm not sure this one will, either, but I'd try it anyway.