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

64

Mark Shuttleworth recentemente bloggato sulla decisione di includere le librerie Qt nella versione 11.10, con un followup da Jono Bacon. Mark afferma che la sfida più grande per l'integrazione di app scritte in Qt nel più grande sistema Ubuntu è l'attuale non compatibilità di Qt con dconf.

Che cos'è dconf e qual è il ruolo che gioca in Ubuntu?

    
posta Chris Wilson 19.01.2011 - 19:32

3 risposte

77

Introduzione

Mentre le altre risposte su questo sito discutono insieme gconf e dconf , mi concentrerò solo sulla discussione di strumenti da riga di comando come gsettings e gui dconf-editor che vengono utilizzati per accedere al database dconf .

Al sito ufficiale di GNOME si noti che

  

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

     

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

     

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

     

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

Uso di gsettings per visualizzare e modificare le impostazioni

Una volta che si viene a conoscenza di gsettings , può essere facile come il gui dconf-editor . Le opzioni possono essere elencate inserendo man gsettings o andando alle manpage di Ubuntu online .

NOTA: Poiché il sistema di tutti ha diversi programmi installati, potresti dover sostituire gli elementi specifici che scelgo per quelli diversi quando fai esperimenti, dato che sto usando XUbuntu XFce con molti programmi GNOME .

Per elencare tutti gli schemi disponibili, inserisci

gsettings list-schemas

Per includere anche tutti i tasti, inserisci

gsettings list-recursively

Tuttavia , in genere è più semplice specificare cosa vuoi, ad esempio,

gsettings list-schemas | grep -i shotwell

Questo restituisce una lunga lista; 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, quando hai trovato lo schema che ti interessa, elenca le chiavi con

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

Questo restituisce una lista (di nuovo l'ho accorciata):

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 visualizza il valore corrente con

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

Questo restituisce un valore true, quindi per invertire, usa

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

Questi sono esempi banali , ma mostrano fondamentalmente come chiavi e valori sono identificati e modificati con gsettings .

Uso di dconf-editor per modificare le impostazioni

Il programma gui, dconf-editor è installato (in 12.04) facendo clic su:

o eseguendo

sudo apt-get install dconf-tools

Quindi eseguilo inserendo nel terminale o nel menu di avvio rapido, dconf-editor .

Come puoi vedere nello screenshot, tutti i vari schemi possono essere espansi sul lato sinistro e la chiave appropriata selezionata. È molto semplice navigare fino al valore desiderato (in questo caso le preferenze gnome-mplayer ). È possibile fare clic sulla casella di controllo per attivare un valore o aggiungere un valore numerico in una delle altre caselle. Puoi anche cercare all'interno dell'editor di dconf con la scorciatoia da tastiera Ctrl + F .

Puoi anche aggiungere un altro registro dire a log-viewer aggiungendo un percorso nel modulo ['/var/log/auth.log', var .... '] nello screenshot qui sotto.

Conclusione

Ci sono molti altri modi utili che puoi modificare le impostazioni con gsettings e dconf-editor e sono semplici da usare. Vale la pena guardare attraverso di loro per vedere se ci sono delle opzioni che non sono nelle preferenze dei programmi, dato che potresti essere in grado di personalizzare il tuo programma nel modo che preferisci. Come recentemente dimostrato da Fossfreedom in questa domanda

sapere come usare gsettings o dconf-editor è estremamente prezioso. Vedi anche:

risposta data user76204 20.09.2012 - 18:31
22

Per quelli che provengono da Windows che vogliono una semplice risposta, dconf è l'equivalente di gnome del registro di Windows ... un grande albero binario in cui qualsiasi programma può archiviare e condividere la loro configurazione.

Sono prima passati 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 i file XML e i problemi di prestazioni di lettura e analisi dei file MANY, sono stati migrati in 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, puoi modificarle o ripristinarle in modo semplice.

    
risposta data higuita 20.08.2013 - 13:47
10

dconf non è specifico di Ubuntu, è la tecnologia GNOME utilizzata per memorizzare le impostazioni dell'applicazione. Per maggiori dettagli si prega di leggere link

    
risposta data João Pinto 19.01.2011 - 19:36

Leggi altre domande sui tag