Being a geek and all that, I try to keep up with the latest developments in Linux land. One new development as of late is that there are two new desktop shells on the block: Gnome Shell and Ubuntu's Unity. Personally, I've fallen in love with the way Gnome Shell works, but Unity seems to rub me completely the wrong way. I had previously switched my Ubuntu install to Gnome 2 (to avoid Unity), but with the 11.10 release, Gnome 2 was removed and Gnome 3 (with Shell) was available in the repositories, so I decided to upgrade.
After a successful upgrade from 11.04 to 11.10 (upgrades have been remarkably smooth as of late), I installed Gnome Shell. It didn't work. I would get a "Nautilus desktop" (desktop icons and Nautilus menu on top), but nothing else. The Shell would not start. I decided that this was most likely due to "bit rot", since I had upgraded the same Ubuntu install several times already. I decided that since I wanted Gnome Shell, it might also make more sense to use a distro designed for Gnome Shell instead of one designed for Unity. So I went through OpenSUSE, Debian testing, a fresh install of Ubuntu and Mint 12. They all started out promising, but invariably, at some point during the setup of my system with all the features I wanted, the system would break in exactly the same way as my original Ubuntu install had broken. This was becoming increasingly frustrating.
I started to wonder if Gnome Shell was just horribly buggy and would randomly break, but I considered this unlikely, as it had been running completely trouble-free on my work laptop for close to a month. It was also hard to put a finger on what was causing the problem, as I always ended up having done a pile of customizations and installs before the reboot that would expose the problem. Then when the same thing happened in Mint 12, two useful properties of Mint helped me figure it out. I'm not saying that this is the only way I could ever have figured it out, just that it left my computer with some rudimentary functionality that made it easier to try some things, and accidentally stumble onto the solution.
These two properties are:
1. Mint has its desktop handled by Nautilus and shows some things on it by default, like "Computer".
2. Mint by default adds an "Open in terminal" option to the Nautilus context menu.
Using this I started a terminal. There was some stuff in .xsession_errors, so I assumed my problem was video related. On a hunch I ran nvidia-settings. I turned off my second screen, which I had turned on right before the problem had occurred. Logged out, logged back in: my Gnome Shell was back!
I'm pretty sure this same same problem had been plaguing me with all the other distros I tried, I just hadn't figured it out those times. The bottom line seems to be this: I don't know which parts of the equation are all to blame, but if I try to run Gnome Shell, with multiple X screens, using the binary NVidia driver, Gnome Shell will refuse to start.
I use multiple screens to be able to use my computer to play MythTV on the TV in my living room. The easiest way I know to make this work seamlessly is to assign my TV to a separate X screen, so I can just run MythTV from a script that sets the correct DISPLAY environment variable to tell MythTV to use the secondary screen. For now, I "solved" my issue by running an old Ubuntu 10.04 install with Gnome 2 from a separate partition if I want to watch shows using MythTV. This is really inconvenient! Let's hope the involved parties figure this one out soon.