Firefox se bloque car le paramètre premier des répertoires de sorting est manquant

Je suis récemment passé de xubuntu 14.04 à xubuntu 16.04. Le processus s’est terminé mais ne s’est pas déroulé sans heurts (je ne me souviens plus pourquoi).

Maintenant, dans firefox lorsque j’ouvre un fichier ( Fichier -> Ouvrir un fichier ), le processus se bloque avec l’erreur suivante:

 ... GLib-GIO-ERROR **: Settings schema 'org.gtk.Settings.FileChooser' does not contain a key named 'sort-directories-first' 

J’ai cherché sur le Web et je n’ai rien trouvé de pertinent. La réinstallation de firefox , gsettings-desktop-schemas gsettings-ubuntu-schemas et gsettings-ubuntu-schemas (avec apt-get install --reinstall ... ) n’a rien changé. J’ai aussi essayé de reconstruire les schémas mais l’erreur est toujours la même:

 sudo glib-comstack-schemas /usr/share/glib-2.0/schemas/ 

Le moins drôle est que la clé existe!

 grep sort-directories-first /usr/share/glib-2.0/schemas/* Binary file /usr/share/glib-2.0/schemas/gschemas.comstackd matches /usr/share/glib-2.0/schemas/org.gnome.nautilus.gschema.xml:  /usr/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml:  

À la fin, j’ai essayé de créer manuellement la clé. Avec gsettings il se plaint que la clé n’existe pas:

 gsettings set org.gtk.Settings.FileChooser sort-directories-first false Not such key 'sort-directories-first' 

Avec dconf je peux créer cette clé mais rien ne change:

 dconf write /org/gtk/settings/file-chooser/sort-directories-first false 

Le fichier /usr/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml existe et contient en premier la clé souhaitée sort-directories-first .

La réponse de WinEunuuchs2Unix indique que le système recherchera le fichier à un emplacement dépendant de la valeur de la variable d’environnement XDG_DATA_DIRS .

Alors que se passe-t-il lorsque le système recherche org.gtk.Settings.FileChooser.gschema.xml dans un emplacement différent?

Le message d’erreur ne nous dit pas que le système ne peut pas trouver le fichier, il nous dit que le système ne peut pas trouver la clé dans le fichier. Cela me garantit que vous avez un deuxième fichier nommé org.gtk.Settings.FileChooser.gschema.xml quelque part dans votre système et que ce fichier ne contient pas la clé souhaitée.

En guise de solution de contournement, je vous suggère de rechercher des fichiers avec le nom org.gtk.Settings.FileChooser.gschema.xml . Je suis sûr que vous en trouverez plusieurs. Vérifiez le contenu de ce fichier à l’emplacement différent s’il contient la clé souhaitée, ce ne sera pas le cas.

Copier à partir de

  /usr/share/glib-2.0/schema/org.gtk.Settings.FileChooser.gschema.xml 

Vous pouvez vérifier la valeur de XDG_DATA_DIRS avec echo $XDG_DATA_DIRS dans le terminal, ce qui peut vous donner une idée de l’endroit où rechercher des fichiers.

Je ne pouvais pas savoir comment définir la valeur de XDG_DATA_DIRS . XDG_DATA_DIRS valeur sera définie lors du démarrage par un script bash, mais les informations que j’ai trouvées semblaient obsolètes.

Votre problème pourrait être lié à ce bogue, Google me mène à ce lien lorsque vous effectuez une recherche sur le net à propos de votre problème.

Juste un peu de fond:

glib-comstack-schemas comstack tous les fichiers de schéma XML GSettings de DIRECTORY en un fichier binary nommé gschemas.comstackd pouvant être utilisé par GSettings. Les fichiers de schéma XML doivent avoir l’extension de nom de fichier .gschema.xml . Pour une description détaillée du format de fichier XML, voir la documentation de GSettings.

Au moment de l’exécution, GSettings recherche les schémas dans les sous glib-2.0/schemas répertoires glib-2.0/schemas de tous les répertoires spécifiés dans la variable d’environnement XDG_DATA_DIRS . L’emplacement habituel d’installation des fichiers de schéma est /usr/share/glib-2.0/schemas .

En plus des fichiers de schéma, glib-comstack-schemas lit les fichiers ‘remplacement du fournisseur’, qui sont des fichiers de clés pouvant remplacer les valeurs par défaut des clés des schémas. Les noms de groupe dans les fichiers de clés sont l’identifiant du schéma et les valeurs sont écrites sous forme GVariant sérialisée. Les fichiers de substitution de fournisseur doivent avoir l’extension de nom de fichier .gschema.override .

Par convention, les fichiers de substitution du fournisseur commencent par nn_nn est un nombre compris entre 00 et 99. Les fichiers dont le numéro est le plus élevé ont une priorité plus élevée (par exemple, si le même remplacement est effectué dans un fichier numéroté 10, puis de nouveau dans un fichier à partir de 20 auront priorité).

Si je lis correctement votre configuration, vous avez vos fichiers .xml dans:

 /usr/share/glib/schemas 

et pas dans:

 /usr/share/glib-2.0/schemas 

où ils sont censés être.

Si je le lis mal, veuillez me le faire savoir et je supprimerai cette réponse. Je n’utilise pas FireFox, donc je ne pouvais pas tester la réponse comme je le fais habituellement.