Che cos'è dconf, qual è la sua funzione e come si usa?


78

Mark Shuttleworth ha recentemente scritto sul blog la decisione di includere le librerie Qt nella versione 11.10, con un seguito di Jono Bacon. Mark afferma che la più grande sfida all'integrazione di app scritte in Qt nel più grande sistema Ubuntu è l'attuale non compatibilità di Qt con dconf.

Cos'è dconf e qual è il ruolo che svolge in Ubuntu?


Possibile duplicato di Come si usa l'editor gconf?
Pablo A

Risposte:


88

introduzione

Mentre altre risposte su questo sito discutono gconfe dconfinsieme, mi concentrerò solo sulla discussione di strumenti da riga di comando come gsettingse la gui dconf-editorche vengono utilizzati per accedere al dconfdatabase.

Sul sito ufficiale di GNOME si nota che

dconf è un sistema di configurazione di basso livello. Il suo scopo principale è fornire un backend a GSettings su piattaforme che non dispongono già di sistemi di archiviazione della configurazione.

dconf è un semplice sistema di configurazione basato su chiavi. Le chiavi esistono in un database non strutturato (ma si intende che le chiavi che logicamente appartengono insieme siano raggruppate).

Avere tutte le chiavi in ​​un unico formato binario compatto evita anche gli intensi problemi di frammentazione attualmente incontrati dall'approccio tree-of-directory-of-xml-files.

dconf è ottimizzato per le letture. In genere, la lettura di una chiave da dconf comporta zero chiamate di sistema e zero cambi di contesto. Le scritture sono meno ottimizzate - attraversano il bus e sono gestite da uno "scrittore" - un servizio DBus - in modo ordinario.

Utilizzo gsettingsper visualizzare e modificare le impostazioni

Una volta che si arriva a sapere gsettingsche può essere facile come la GUI dconf-editor. Le opzioni possono essere elencate accedendo man gsettingso andando alle manpage di Ubuntu online .

NOTA: Poiché nel sistema di ognuno sono installati programmi diversi, potrebbe essere necessario sostituire gli elementi specifici che scelgo con quelli diversi quando si sperimenta te stesso, poiché sto usando XUbuntu XFce con molti programmi GNOME.

Per elencare tutti gli schemi disponibili, immettere

gsettings list-schemas

Per includere anche tutte le chiavi, inserire

gsettings list-recursively

Tuttavia , in genere è più semplice specificare ciò che si desidera, ad esempio,

gsettings list-schemas | grep -i shotwell

Questo restituisce un lungo elenco; L'ho abbreviato in:

org.yorba.shotwell
org.yorba.shotwell.preferences.ui
org.yorba.shotwell.preferences.slideshow
org.yorba.shotwell.plugins.enable-state
org.yorba.shotwell.printing
org.yorba.shotwell.preferences.editing
org.yorba.shotwell.preferences.files

Ora che hai trovato lo schema che ti interessa, elenca le chiavi con

gsettings list-keys org.yorba.shotwell.preferences.ui

Questo restituisce un elenco (di nuovo l'ho abbreviato):

background-color
display-basic-properties
display-extended-properties
display-photo-ratings
display-photo-tags
display-photo-titles
event-photos-sort-ascending
event-photos-sort-by

Scegline uno e vedi con quale valore attuale

gsettings get org.yorba.shotwell.preferences.ui display-photo-tags

Questo restituisce un valore vero, quindi per invertire, utilizzare

gsettings set org.yorba.shotwell.preferences.ui display-photo-tags false

Questi sono esempi banali , ma mostrano sostanzialmente come vengono identificate e modificate chiavi e valori gsettings.

Utilizzo di dconf-editor per modificare le impostazioni

Il programma GUI dconf-editorviene installato con il pacchetto dconf-tools facendo clic qui o eseguendolo

sudo apt-get install dconf-tools

Quindi eseguirlo inserendo nel terminale o nel menu di avvio veloce, dconf-editor.

Come puoi vedere nello screenshot, tutti i vari schemi possono essere espansi sul lato sinistro e il tasto appropriato selezionato. È molto semplice navigare fino al valore desiderato (in questo caso le gnome-mplayerpreferenze). È possibile fare clic sulla casella di controllo per attivare un valore o aggiungere un valore numerico in una delle altre caselle. Puoi anche cercare nell'editor dconf con Ctrl+ Fscorciatoia da tastiera.

inserisci qui la descrizione dell'immagine

È inoltre possibile aggiungere un altro registro dire log-vieweraggiungendo un percorso nel modulo ['/var/log/auth.log', var .... '] nello screenshot seguente.

inserisci qui la descrizione dell'immagine

Conclusione

Esistono molti altri modi utili per modificare le impostazioni con entrambi gsettingse dconf-editorsono semplici da usare. Vale la pena guardarli attraverso per vedere se ci sono opzioni che non sono nelle preferenze dei programmi, in quanto potresti essere in grado di personalizzare il tuo programma nel modo desiderato. Come la fossfreedom ha recentemente mostrato in questa domanda

saper usare gsettingso dconf-editorè estremamente prezioso. Guarda anche:


5
Dal momento che i programmi gsettingse dconf-editorlavorare sia sulla dconfbase di dati, perché non mostrano le stesse informazioni? gsettingil 12.04 mostra i valori per lo schema com.canonical.Unity.Launchere la chiave, favoritesma dconf-editornon offre nemmeno com.canonical.Unitylo schema completo o la chiave.
AH,

@AH: bella domanda. L'ho chiesto qui: askubuntu.com/q/243409/2355
Flimm,

@AH Mi dispiace di aver dimenticato di rispondere al tuo commento: non posso commentare Unity perché sono su Xubuntu, ma Flimm ha posto una domanda a parte che dovrebbe avere delle buone risposte.

4
Ma cosa diavolo rende incompatibile dconf con Qt, un toolkit GUI?
Salman von Abbas,

Su RHEL / CentOS utilizzare yum install dconf-editorper installare lo strumento GUI.
Mark Edington,

26

Per coloro che provengono da Windows e desiderano una risposta semplice, dconf è lo gnome equivalente al registro di Windows ... un grande albero binario in cui qualsiasi programma può archiviare e condividere la propria configurazione.

Prima sono migrati dalle tradizionali configurazioni unix (un file di testo per ogni app, ognuna con il proprio formato) a un albero standard di file XML, gestito da gconf. In tempi recenti, poiché quasi nessuno ha modificato direttamente quei file XML e i problemi di prestazioni della lettura e dell'analisi di MOLTI file, sono migrati in un formato binario migrando da gconf a dconf.

A differenza del registro di Windows, dconf dovrebbe avere tutte le voci di configurazione elencate, anche se sono impostate sui valori predefiniti. Quindi non ci sono voci nascoste, è possibile modificare o ripristinare le impostazioni predefinite facilmente.


10

dconf non è specifico di Ubuntu, è la tecnologia GNOME utilizzata per memorizzare le impostazioni dell'applicazione. Per maggiori dettagli, leggere http://live.gnome.org/dconf


Qual è la relazione tra dconf e gconf?
psusi,

10
dconf è il sostituto di GNOME3 per gconf che non è stato mantenuto per un po 'di tempo. dconf dovrebbe inoltre apportare miglioramenti delle prestazioni rispetto a gconf (rilevante per l'avvio delle applicazioni).
João Pinto,

1
La domanda nel commento di psusi sopra è parzialmente risolta nelle risposte alla domanda " Perché la controversia su dconf e gconf? ". Sono sicuro che psusi ne è consapevole, dopo aver commentato la domanda, ma nel caso in cui chiunque voglia saperne di più, eccolo .
Firefeather,
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.