Ubuntu – How to repair login screen without reinstalling gdm

gdmubuntu-9.10

I recently ran into an issue with my login screen switching to a default hi-contrast window management schema in Ubuntu, as opposed to the default dark colors. The problem (and a working, but not-as-versatile solution) is documented at http://ubuntuforums.org/showthread.php?t=1324055.

How do I reconfigure my system to use the default settings when at the login screen, without reinstalling gdm?

Best Answer

I was able to recreate your issue pretty easily; I enabled assistive technologies from the System > Preferences > Assistive Technologies dialog, then logged out, opened the Assistive dialog, checked the checkbox for the high-contrast view, unchecked the checkbox, and closed the dialog. That changed the user list coloration, and didn't restore the default theme.

This appears to be a known bug. They call it ACODBIT -- the Accessibility Checkbox Of Death By Inappropriate Theme.

What's happening is that checking the accessibility option changes a GDM configuration file when checked, and when unchecked the file isn't properly restored.

The file is /var/lib/gdm/.gconf.defaults/%gconf-tree.xml; all you need to do to fix the problem state is restore the original file. There are several ways to do this; which ones are easier than reinstalling ... is debatable. An incomplete list:

  • Copy the file from another system that doesn't exhibit the problem. This could be another computer running Ubuntu 9.10, or a 9.10 LiveCD.

  • Mount a LiveCD's casper/filesystem.squashfs file and access the file from there:

    1. insert your LiveCD and allow Gnome to automount it;
    2. in a terminal window, run this to mount the LiveCD's filesystem
      (replace /media/cdrom0 with the location your LiveCD was mounted to):
      sudo mount /media/cdrom0/casper/filesystem.squashfs /mnt -o loop
    3. copy the file from LiveCD filesystem:
      sudo cp /mnt/var/lib/gdm/.gconf.defaults/%gconf-tree.xml /var/lib/gdm/.gconf.defaults/

  • Restore it from a backup, if you have one.

  • Reinstall the gdm package. For beginners, this really is the easiest option. If the package is still available in your system's package cache (/var/cache/apt/archives), reinstalling will not re-download the package. You can use one of these to reinstall:

    • Synaptic Package Manager, on the System > Administration menu; or
    • Aptitude on the commandline, with the command
      sudo aptitude reinstall gdm
Related Question