Come leggere il valore chiave predefinito con dconf o gsettings?


13

Vorrei sapere il valore predefinito di una chiave dconf / gsettings.

La mia domanda è la seguente della seguente domanda: dove posso ottenere un elenco di SCHEMA / PATH / KEY da usare con gsettings?

Quello che sto cercando di fare, quindi crea uno script che legge tutte le mie preferenze personali in modo da poterle eseguire il backup e ripristinarle. Ho intenzione di iterare sebbene tutte le chiavi, come lo script sopra, vedano quali chiavi sono state modificate rispetto al loro valore predefinito e ne prendo nota, che possono essere ripristinate in seguito.

Vedo che l'editor dconf mostra il valore predefinito delle chiavi, ma mi piacerebbe molto scriverlo. Inoltre, non vedo come sia possibile automatizzare l'analisi degli schemi /usr/share/glib-2.0/schemas/. Forse qualcuno può aiutare?

gsettings get-default | list-defaults sarebbe bello =)

(Geesh, era molto più semplice ai vecchi tempi in cui hai appena tenuto il tuo ~ / .somethingrc in sovversione ... = \


Sulla base della risposta fornita di seguito, ho aggiornato lo script per stampare lo schema, la chiave, il tipo di dati della chiave, il valore predefinito e il valore effettivo:

#!/bin/bash

for schema in $(gsettings list-schemas | sort); do
    for key in $(gsettings list-keys $schema | sort); do
        type="$(gsettings range $schema $key | tr "\n" " ")"
        default="$(XDG_CONFIG_HOME=/tmp/ gsettings get $schema $key | tr "\n" " ")"
        value="$(gsettings get $schema $key | tr "\n" " ")"
        echo "$schema :: $key :: $type :: $default :: $value"
    done
done

Questa soluzione sostanzialmente copre ciò di cui ho bisogno. Continuerò a lavorare sullo script di backup da qui.


Se anche qualcun altro è arrivato qui alla ricerca di come ripristinare una chiave al suo valore predefinito, allora gsettings reset KEYè la strada da percorrere.
Andreas Storvik Strauman,

Risposte:


11

Non sembra essere un buon modo per ottenere direttamente i valori predefiniti, ma poiché il client controlla XDG_CONFIG_HOME nell'ambiente, una soluzione decente per ottenere valori da una nuova configurazione potrebbe essere:

XDG_CONFIG_HOME=/nonexistent gsettings get SCHEMA KEY

1

Se sei interessato a eseguire il backup e ripristinare le impostazioni (in questo caso dovresti cambiare il titolo della domanda).

di riserva

È possibile eseguire il backup delle impostazioni con

gsettings list-recursively > backup

Questo scrive tutte le chiavi nel backup del file nella cartella Home.

Ristabilire

Per quanto ne so, non esiste alcuna opzione diretta per importare nuovamente il file in dconf. Forse potresti scrivere una routine che legge il file di backup riga per riga ed esegue gsettings set <input line from backup>per ripristinare le impostazioni.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.