İlk olarak, Apps ile uğraşmamalıdconf
Dan giriş dconf proje sayfası:
dconf
düşük seviyeli bir yapılandırma sistemidir. Temel amacı, halihazırda konfigürasyon depolama sistemleri bulunmayan platformlarda GSettings'e arka uç sağlamaktır.
Veriler nerede saklanıyor? (Ref: https://wiki.gnome.org/Projects/dconf/SystemAdministrators )
Profil, yapılandırma veritabanlarının bir listesidir. Görünüşe göre Gnome & Unity aynı profili kullanıyor.
$ cat /etc/dconf/profile/gdm
user-db:user
system-db:gdm
user-db:user
: Profildeki ilk veritabanı okuma-yazma rw
ve kullanıcının ana dizininde yaratılmıştır.
$ file ~/.config/dconf/user
/home/sneetsher/.config/dconf/user: GVariant Database file, version 0
system-db:gdm
: Sadece oku
$ file /etc/dconf/db/gdm
/etc/dconf/db/gdm: GVariant Database file, version 0
dconf
db.d/*
klasörden GVariant Veritabanına ek olarak bir metin stili mağazasını bağlayabilir . Örnek (Dosya yoluna dikkat edin, bu nedenle bir parçasıdır 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
...
Şema Dosyaları: schema id
&schema path
( *.gschema.xml
) Arasındaki İlişki
Quickly uygulamamın data / glib-2.0 klasöründeki şema XML dosyası nedir? tarafından trent bir hızla uygulamada GSettings API kullanarak güzel bir örneği gösterir ve onun sonuca onun deneyime dayalı.
Vino'ya. GSsettings kullanan her uygulama şemalarını tanımlamalı ve bunları saklamalı / yüklemeli /usr/share/glib-2.0/schemas/
(Bu bir glib dizinidir):
$ 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>
...
Fark ederseniz, şema bir id
ve a ile tanımlanır path
. Şema dosyası adı id
değeri izler .
<schema id='org.gnome.Vino' path='/org/gnome/desktop/remote-access/'>
*.enums.xml
dosyalar, *.gschema.xml
aynı şekilde yeni veri türleri olarak kullanılmak üzere özel numaralandırma bildirimi içindir 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'
Şemaların Derlenmesi (Ref: dconf ve gnome-tweak-tool ile çalma )
Yükleme işleminin bir parçası olarak (dpkg tetikleyicisine sahiptir), şema glib-compile-schemas
aracı (glib'den) aracıyla derlenir
sudo glib-compile-schemas /usr/share/glib-2.0/schemas
*.gschema.xml
bir ikili dosyaya derlenecek /usr/share/glib-2.0/schemas/gschemas.compiled
Satıcı Geçersiz Kılma Dosyaları ( *.gschema.override
)
Şema dosyalarına ek olarak , şemalardaki anahtarların varsayılan değerlerini geçersiz kılan anahtar dosyalar olan satıcı geçersiz kılma dosyalarını glib-compile-schemas
okur (Ref:) . Akış yukarı şema varsayılanlarını geçersiz kılmak için Ubuntu dağıtımında yapılan değişiklikleri içerir.man glib-compile-schemas
$ 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']
Geçersiz kılma dosyaları kullanımı örneği, Bkz . Ubuntu Live CD'si nasıl özelleştirilir? (5. Özelleştirme 2: Arka Planlar ve Temalar).
Dosyaları kilitle
Şu anda, dconf yalnızca tuş başına kilitlemeyi destekler, alt yol kilidi yoktur. Kullanıcı tanımlı değerler depolanmaya devam eder user-db
ancak uygulamalar üzerinde hiçbir etkisi olmaz. dconf / gsettings, kilitli anahtarlar için bunun yerine varsayılan değerleri döndürür. Kilit dosyaları saklanır db.d/locks/
. Örnek:
$ 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
...
Kilitlerin değiştirilmesinden sonra etkili çalışma:
sudo dconf update
İyi bir vitrin: dconf Ayarlar: varsayılanlar ve kilitler
Genel Ayarları Değiştirme
İçin varsayılan gsettings
/ ' dconf-editor
düzenlemek etmektir user-db
. Değiştirmek için system-db
, yeni bir geçersiz kılma dosyası yazın ve şemaları yeniden derleyin.
Bunu işe alamadım:
sudo su gdm -c 'gsettings ...'
Buradaki diğer cevaplar da Varsayılan / Global Gnome Tercihlerini Belirleme (Gnome 3) , eski bir sürüm içindi.