まず、アプリは混乱してはいけませんdconf
dconfプロジェクトページからの紹介:
dconf
低レベルの構成システムです。その主な目的は、構成ストレージシステムをまだ持っていないプラットフォームでGSettingsにバックエンドを提供することです。
データはどこに保存されますか?(参照:https : //wiki.gnome.org/Projects/dconf/SystemAdministrators)
プロファイルは、構成データベースのリストです。GnomeとUnityは同じプロファイルを使用しているようです。
$ cat /etc/dconf/profile/gdm
user-db:user
system-db:gdm
user-db:user
:プロファイル内の最初のデータベースは読み書き可能rw
で、ユーザーのホームディレクトリに作成されます。
$ file ~/.config/dconf/user
/home/sneetsher/.config/dconf/user: GVariant Database file, version 0
system-db:gdm
:読み取り専用
$ file /etc/dconf/db/gdm
/etc/dconf/db/gdm: GVariant Database file, version 0
dconf
db.d/*
フォルダからGVariant Databaseに加えてテキストスタイルストアをバインドできます。例(ファイルパスに注意してください。したがって、の一部です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
...
スキーマファイル:schema id
&schema path
(*.gschema.xml
)の関係
Quicklyアプリケーションのdata / glib-2.0フォルダーにあるスキーマXMLファイルは何ですか?by trentは、QuicklyアプリケーションでGSettings APIを使用する良い例と、彼の経験に基づいた結論を示しています。
Vinoに戻ります。GSsettingsを使用する各アプリケーションは、そのスキーマを定義し、それらを格納/インストールする必要があります/usr/share/glib-2.0/schemas/
(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>
...
あなたが気づいた場合は、スキーマを使用して定義されるid
とpath
。id
値の後にスキーマファイル名が続きます。
<schema id='org.gnome.Vino' path='/org/gnome/desktop/remote-access/'>
*.enums.xml
ファイルは、*.gschema.xml
同じ列挙型の新しいデータ型として使用されるカスタム列挙宣言用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'
スキーマのコンパイル(参照:dconfおよびgnome-tweak-toolで遊ぶ)
インストールプロセスの一部として(dpkgトリガーがあります)、スキーマはglib-compile-schemas
ツールでコンパイルされます(glibから)
sudo glib-compile-schemas /usr/share/glib-2.0/schemas
*.gschema.xml
バイナリファイルにコンパイルされます /usr/share/glib-2.0/schemas/gschemas.compiled
ベンダーオーバーライドファイル(*.gschema.override
)
スキーマファイルに加えて、ベンダーオーバーライドファイルをglib-compile-schemas
読み取ります。これは、スキーマ内のキーのデフォルト値をオーバーライドできるキーファイルです(参照:)。アップストリームスキーマのデフォルトをオーバーライドするために、Ubuntuディストリビューションによって行われた変更が含まれています。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']
オーバーライドファイルの使用例。UbuntuLive CDのカスタマイズ方法をご覧ください。(5.カスタマイズ2:背景とテーマ)。
ファイルをロックする
現在、dconfはキーごとのロックのみをサポートし、サブパスロックはサポートしていません。ユーザー定義の値は引き続き格納されますuser-db
が、アプリケーションには影響しません。dconf / gsettingsは、ロックされたキーの代わりにデフォルト値を返します。ロックファイルはに保存されdb.d/locks/
ます。例:
$ 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
...
ロックを変更した後、効果的に実行するには:
sudo dconf update
良いショーケース:dconf設定:デフォルトとロック
グローバル設定の変更
gsettings
/ のデフォルトdconf-editor
はuser-db
。変更するsystem-db
には、新しいオーバーライドファイルを作成し、スキーマを再コンパイルします。
私はこれを機能させることができませんでした:
sudo su gdm -c 'gsettings ...'
ここにある他の回答「デフォルト/グローバルGnomeプリファレンスの設定(Gnome 3)」は、古いリリースのものではないかもしれません。