ubuntusettingsgnomemeld

Ubuntu meld: No GSettings schemas are installed on the system


This is a vanilla Ubuntu 16.04 LTS, based on Xubuntu core to be exactly. So I need to install packages myself. All went well except meld, on starting which, I'll get:

(meld:4188): GLib-GIO-ERROR **: No GSettings schemas are installed on the system

[2]+  Trace/breakpoint trap  

I've found three existing answers, none of them is working for my case.

Following the suggestions, I've done reinstalling gsettings-desktop-schemas:

sudo apt-get install --reinstall gsettings-desktop-schemas

However, none of them is working.

  $ ls -l /usr/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml   
  -rw-r--r-- 1 root root 5354 2016-03-24 16:46 /usr/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml

$ XDG_DATA_DIR=/usr/share/glib-2.0/schemas/ meld ...
(meld:4326): GLib-GIO-ERROR **: No GSettings schemas are installed on the system

[2]+  Trace/breakpoint trap

I've consult this one as well, however, that's Redhat 6.3 server environment, and the OP was installing each component to its own prefix; thus he ran into errors like this. In other words, his case doesn't apply to my vanilla Ubuntu.

I've run out of options. Please help.

Thanks

$ gsettings list-recursively
No schemas installed

$ lsb_release -a 
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04 LTS
Release:        16.04
Codename:       xenial

$ uname -rm
4.4.0-21-generic x86_64

$ apt-cache policy meld gsettings-desktop-schemas
meld:
  Installed: 3.14.2-1
  Candidate: 3.14.2-1
  Version table:
 *** 3.14.2-1 500
        500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
        100 /var/lib/dpkg/status
gsettings-desktop-schemas:
  Installed: 3.18.1-1ubuntu1
  Candidate: 3.18.1-1ubuntu1
  Version table:
 *** 3.18.1-1ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages
        100 /var/lib/dpkg/status

Solution

  • From post comments: Try setting:

    export XDG_DATA_DIRS=/usr/share/ubuntu:/usr/share/gnome:/usr/local/share/:/usr/share/
    

    This seems to be the old behaviour in Ubuntu 15.10. On closer inspection, it seems the "old value" is nowadays set in /etc/X11/Xsession.d/55gnome-session_gnomerc only if the session (in env var $STARTUP) matches the pattern gnome-session*. I have a ~/.xsession style startup so that's why it does not match for me. I guess Xubuntu might likewise have $STARTUP set to something not matching the pattern.

    This all is possible to fine-tune through ~/.xessionrc which is sourced from /etc/X11/Xsession.d/40x11-common_xsessionrc. So you can just put the XDG_DATA_DIRS setting shown at the top of this answer in ~/.xsessionrc and the wanted value will get installed regardless of the session type. There you can also override what type of session you want etc. The files in /etc/X11/Xsession.d/ are all loaded (sourced) in alphabetically ascending order.