Gnomeのdconfのカスタムデフォルト値を設定する方法

Linux

こんにちは、山田ハヤオです。

最近Alter Linux RC1が出て、Cinnamon版もリリースされました。

CinnamonやGnomeなどのGnome3系は設定をdconfに保存しています。

dconfとはWindowsでいうレジストリのようなもので、従来と違って設定や値をデータベースに保存します。

テキストファイルでないので編集やデフォルトの値の設定が難しくなっており個人的に嫌いなのですが、テキストファイルよりも高速だったりとメリットもあるようです。

今回はdconfでシステムのデフォルトの値を編集する方法を解説します。

スポンサーリンク

カスタムデフォルト値?

今回は単純にdconfの値を編集するわけではありません。デフォルトの値を変更します。

普通に値を編集するのは簡単(dconf-editorというGUIツールがある)ですが、デフォルトの値を編集するのは少しむずかしいです。

デフォルトの値はようは/etc/skelのようなものです。(カスタムUbuntuとか作ったことある人ならわかるはず)

デフォルトの値は新しいユーザーを作成した際に適用されるので、様々な人が使うPCを管理している人が重宝すると思います。

デフォルト設定の編集にはroot権限が必要です。

1.現在の設定をファイルに保存する

(既にdconfの値そのものは編集済とします)

変更されたdconfの値はテキストファイルとして書き出すことができます。

この書き出されたテキストファイルを決まった位置に配置することでデフォルト値を書き換えます。

dconfの設定は以下のコマンドで書き出せます。

dconf dump / > ~/dconf-dump

これで~/dconf-dumpに設定を書き出せました。

ハヤオのdconfをdumpした結果はこんな感じです。

2.設定から不要なものを削除する

変更するデフォルト値は最小限にするべきです。

例えば最後のウィンドウサイズやウィンドウ位置などの情報は含めないほうが良いでしょう。

また、個人情報が含まれている場合もあります。メールアドレスなどが良い例でしょう。

それらの値をデフォルト値にするのは良いとは決して言えません。

dconf-editorでGUIで該当の部分まで辿っていくと値の説明があります。

それを利用して最小限の値だけが残るようにして下さい。

ダンプしたdconfの見方

以下はAlter Linux Cinnamonのライブ環境でのみ使用されているdconfの一部です。

[org/cinnamon/desktop/lockdown]
disable-lock-screen=true

[org/gnome/desktop/lockdown]
disable-lock-screen=true

[org/cinnamon/desktop/screensaver]
allow-keyboard-shortcuts=false
layout-group=0
lock-enabled=false

[org/gnome/desktop/screensaver]
lock-enabled=false

dconfはレジストリのように独自のディレクトリ構造を持っています。

[]で囲まれた部分はパスを表しており、その下で実際に値が設定されています。

このディレクトリ構造は実際にGUIでdconf-editorを見てみると理解しやすいです。

dconfの値はbool(true or false)やint(整数値)など設定できる型が決まっているので注意して下さい。

3.デフォルト値を変更する

いよいよデフォルト値を変更します。

まずは1つのファイルを作成します。(プロファイルとかいろいろあるのですが省略)

/etc/dconf/profile/userに以下の内容を書いて下さい。

user-db:user
system-db:local

その後、以下のコマンドでディレクトリを作成します。

sudo mkdir -p  /etc/dconf/db/local.d/

これで準備は完了です。上で作成したディレクトリにファイルを入れていきます。

このディレクトリに入れられたテキストファイルが全て読み込まれます。

記述されている設定をカテゴリごとにファイルを分けて書くと管理がしやすいです。

先程作成した~/dconf-dumpの中に書いてある設定値を/etc/dconf/db/local.d/内のテキストファイルに書いていきます。

それぞれの設定内容でファイルを分割すると良いでしょう。

Alter Linux Cinnamonでは設定の対象のソフト(NemoやBluetooth)や役割(ライブ環境のみなど)でファイルを分割しています。

5.システムデータベースを更新する

最後にこれを実行しないと変更が適用されないので注意して下さい。

sudo dconf update

参考にできるもの

RHELやOpenSUSEの情報もありますがほとんど全てディストリビューションに関係なく使えます。

コメント

タイトルとURLをコピーしました