Shell – Where does gnome-session/gnome-shell store its configuration

debiangnome-shellgnome3

Long story short; I have a debian system that's been running the unstable tree for over a decade straight (through fire, flames, and multiple hardware upgrades, but that aside). However, a while ago while Debian was transitioning to gnome3 and the gnome-shell desktop there were a couple of hitches in the process, and one or another of those left my regular user with an unusable configuration — gnome-shell starts up and immediately crashes.

I tried setting up a completely blank new user, and everything runs fine for that one, so it's definitely an issue with a setting local to my main user somewhere… It's just that I have no idea where to start looking, and I don't want to blanket erase all configuration files because I kind of need the vast majority of them. So instead I'm looking to surgically remove all the configuration files and/or options that pertain to gnome-shell and let it rebuild them from scratch when I start it, then work from there.

EDIT: My bad, slight naming fail. The problem seems to be in gnome-shell rather than gnome-session.

Best Answer

How do you know it's a gnome-session problem? It may just as well be program launched by gnome-session.

When it comes to configuraion, gnome is ... colourful. Configuration may be stored in

  • ~/.gnomerc (file)
  • ~/.gnome (dir)
  • ~/.gnome2 (dir)
  • ~/.local (dir)
  • and of course in gconf, a.k.a. the gnome registry.

IIRC gnome-session doesn't do a whole lot. It starts the required components listed in gconf under /desktop/gnome/session (see /desktop/gnome/session/required_components for the programms that actually fulfill the requirements). After that it's rather passive.

To access this data you can either use a graphical user interface or gconftool-2. To browse through your configuration you could

gconftool-2 -a --all-dirs /desktop/gnome/session
gconftool-2 -a --all-dirs /desktop/gnome/session/required_components

gnome-sessions "config" is under/apps/gnome-session. What may also be interessting for you is /apps/gnome_settings_daemon, its subdirs and of course the /apps entries for all required components.

After that you need to scan through the directories. According to my experience most interessting options are in .gnomerc .gnome and .local. But I think .local is more of a recent thing in Gnome so your problem is probably not there.