- Tout d'abord, les applications ne doivent pas jouer avec- dconf
 - Introduction de la page du projet dconf : - dconfest un système de configuration de bas niveau. Son objectif principal est de fournir un backend à GSettings sur des plates-formes qui ne disposent pas déjà de systèmes de stockage de configuration.
 
- Où sont les données stockées? (Réf.: Https://wiki.gnome.org/Projects/dconf/SystemAdministrators ) - Un profil est une liste de bases de données de configuration. Il semble que Gnome & Unity utilise le même profil. - $ cat /etc/dconf/profile/gdm
user-db:user
system-db:gdm
 - 
- user-db:user: La première base de données du profil est en lecture-écriture- rwet elle est créée dans le répertoire de base de l'utilisateur.
 - $ file ~/.config/dconf/user
/home/sneetsher/.config/dconf/user: GVariant Database file, version 0
 
- system-db:gdm: lecture seulement
 - $ file /etc/dconf/db/gdm
/etc/dconf/db/gdm: GVariant Database file, version 0
 - dconfpourrait lier un magasin de styles de texte en plus de la base de données GVariant à partir d'un- db.d/*dossier. Exemple (Remarquez le chemin du fichier, il en fait donc partie- system-db:gdm):
 -  $ cat /etc/dconf/db/gdm.d/00-upstream-settings
 # This file is part of the GDM packaging and should not be changed.
 #
 # Instead create your own file next to it with a higher numbered prefix,
 # and run
 #
 #       dconf update
 #
 [org/gnome/desktop/a11y/keyboard]
 enable=true
 [org/gnome/desktop/background]
 show-desktop-icons=false
 ...
 
 
- Fichiers de schéma: relation entre - schema id&- schema path(- *.gschema.xml)
 - Quel est le fichier XML du schéma dans le dossier data / glib-2.0 de mon application Quickly?by trent montre un bel exemple d'utilisation de GSettings API dans une application Quickly, ainsi que sa conclusion basée sur son expérience. - Retour à Vino. Chaque application utilisant GSsettings doit définir son schéma et les stocker / installer dans- /usr/share/glib-2.0/schemas/(c'est un répertoire glib):
 - $ dpkg -L vino | grep -i glib-2.0
/usr/share/glib-2.0
/usr/share/glib-2.0/schemas
/usr/share/glib-2.0/schemas/org.gnome.Vino.enums.xml
/usr/share/glib-2.0/schemas/org.gnome.Vino.gschema.xml
$ more /usr/share/glib-2.0/schemas/org.gnome.Vino.gschema.xml
<schemalist>
  <schema id='org.gnome.Vino' path='/org/gnome/desktop/remote-access/'>
    <key name='enabled' type='b'>
      <summary>Enable remote access to the desktop</summary>
      <description>
        If true, allows remote access to the desktop via the RFB
        protocol. Users on remote machines may then connect to the
        desktop using a VNC viewer.
      </description>
      <default>false</default>
    </key>
    <key name='prompt-enabled' type='b'>
      <summary>Prompt the user before completing a connection</summary>
      <description>
        If true, remote users accessing the desktop are not allowed
        access until the user on the host machine approves the
        connection. Recommended especially when access is not password
        protected.
      </description>
      <default>true</default>
    </key>
...
 - Si vous avez remarqué, le schéma est défini avec un - idet un- path. Le nom du fichier de schéma suit la- idvaleur.
 - <schema id='org.gnome.Vino' path='/org/gnome/desktop/remote-access/'>
 
- *.enums.xmlles fichiers sont destinés à une déclaration d'énumération personnalisée, à utiliser comme nouveaux types de données- *.gschema.xmlavec les mêmes- schema id.
 - $ cat /usr/share/glib-2.0/schemas/org.gnome.Vino.enums.xml
<!-- Generated data (by glib-mkenums) -->
<schemalist>
  <enum id='org.gnome.Vino.VinoIconVisibility'>
    <value nick='never' value='0'/>
    <value nick='always' value='1'/>
    <value nick='client' value='2'/>
  </enum>
</schemalist>
<!-- Generated data ends here -->
$ gsettings range org.gnome.Vino icon-visibility
enum
'never'
'always'
'client'
$ gsettings get org.gnome.Vino icon-visibility
'client'
 
- Compilation de schémas (Réf: Jouer avec dconf et gnome-tweak-tool ) - Dans le cadre du processus d’installation (avec un déclencheur dpkg), les schémas sont compilés avec - glib-compile-schemastool (à partir de glib)
 - sudo glib-compile-schemas /usr/share/glib-2.0/schemas
 - *.gschema.xmlsera compilé dans un fichier binaire- /usr/share/glib-2.0/schemas/gschemas.compiled
 
- Fichiers de substitution de fournisseur ( - *.gschema.override)
 - En plus des fichiers de schéma, - glib-compile-schemaslit les fichiers de substitution du fournisseur , qui sont des fichiers de clé pouvant remplacer les valeurs par défaut des clés dans les schémas (Ref:)- man glib-compile-schemas. Ils contiennent les modifications apportées par la distribution Ubuntu pour remplacer les valeurs par défaut du schéma en amont.
 - $ ls /usr/share/glib-2.0/schemas/*.gschema.override
/usr/share/glib-2.0/schemas/10_compiz-gnome.gschema.override
/usr/share/glib-2.0/schemas/10_desktop-base.gschema.override
/usr/share/glib-2.0/schemas/10_evolution-common.gschema.override
/usr/share/glib-2.0/schemas/10_gnome-settings-daemon.gschema.override
/usr/share/glib-2.0/schemas/10_gnome-shell.gschema.override
/usr/share/glib-2.0/schemas/10_gnome-system-log.gschema.override
/usr/share/glib-2.0/schemas/10_gsettings-desktop-schemas.gschema.override
/usr/share/glib-2.0/schemas/10_libgtk-3-common.gschema.override
/usr/share/glib-2.0/schemas/10_ubuntu-settings.gschema.override
/usr/share/glib-2.0/schemas/20_ubuntu-gnome-default-settings.gschema.override
$ cat /usr/share/glib-2.0/schemas/10_gnome-settings-daemon.gschema.override
[org.gnome.desktop.wm.keybindings]
switch-input-source=['<Super>space']
switch-input-source-backward=['<Shift><Super>space']
 - Exemple d'utilisation de fichiers de substitution, voir Comment personnaliser le CD Ubuntu Live? (5. Personnalisation 2: Arrière-plans et thèmes). 
- Verrouiller les fichiers - Actuellement, dconf ne prend en charge que le verrouillage par clé, pas de verrouillage de sous-chemin. Les valeurs définies par l'utilisateur seront toujours stockées dans, - user-dbmais n'auront aucun effet sur les applications. dconf / gsettings renvoie les valeurs par défaut pour ces clés verrouillées. Les fichiers de verrouillage sont stockés dans- db.d/locks/. Exemple:
 - $ cat /etc/dconf/db/gdm.d/locks/00-upstream-settings-locks 
/org/gnome/desktop/a11y/keyboard/enable
/org/gnome/desktop/background/show-desktop-icons
/org/gnome/desktop/lockdown/disable-application-handlers
/org/gnome/desktop/lockdown/disable-command-line
/org/gnome/desktop/lockdown/disable-lock-screen
/org/gnome/desktop/lockdown/disable-log-out
/org/gnome/desktop/lockdown/disable-printing
/org/gnome/desktop/lockdown/disable-print-setup
/org/gnome/desktop/lockdown/disable-save-to-disk
/org/gnome/desktop/lockdown/disable-user-switching
...
 - Après la modification des verrous, pour être efficace: - sudo dconf update
 - Une bonne vitrine: Paramètres dconf: valeurs par défaut et verrous  
- Modification des paramètres globaux - La valeur par défaut pour - gsettings/- dconf-editorest de modifier le fichier- user-db. Changer- system-db, écrivez un nouveau fichier de remplacement et recompilez le schéma.
 - Je n'arrivais pas à faire fonctionner ça: - sudo su gdm -c 'gsettings ...'
 - ni les autres réponses ici Définir les préférences par défaut / globales du gnome (gnome 3) , cela peut être une ancienne version.