バージョン2.26以上のGIOライブラリにおけるGSettingsの機能とその設定を扱うツールについて
GConfとGSettings
GNOMEなどのアプリケーションが設定を保存するための仕組みとしてGConfというものがあり、階層構造を持った設定データベースに対して設定を読み書きする。このGConfは外部のGConfライブラリ(libgconf)が必要で、設定デーモン(gconfd)も動作する。
これとは別に、バージョン2.26以上のGIOライブラリではGSettingsという高レベルな設定の読み書きの仕組みが用意され、GLib/GIOのライブラリから見た外部のライブラリに依存せずにGConfのような階層構造を持った設定データベースの操作を行うことができるようになっている。
このGSettingsでは実際にデータを扱うバックエンド(低レベルな設定データ管理システム)を複数持つ(使用時にいずれかを選択する)ことができ、標準的なものとしては軽量なdconf(https://live.gnome.org/dconf)がある。
GSettingsのツール(gsettingsコマンド)について
バージョン2.26以上のGLibに付属するgsettingsというツール(コマンド)を用いると、バックエンドに依存せず共通した方式で設定データベースの項目を操作できる。このツールは、Debian/Ubuntuでは「libglib2.0-bin」パッケージに含まれる。
設定は
といった形で階層部分と設定項目部分に分かれており、設定データの読み書きの際にはこの2つを用いる。
スキーマのデータは/usr/share/glib-2.0/schemas/以下の.gschema.xmlファイルに書かれている。
以下、作業例とその出力を貼り付けるが、出力は環境によって異なる。また、以下で扱う操作(内部コマンド)は一部で、全てではない。
スキーマ一覧の取得作業例
内部コマンド名は「list-schemas」,引数は付けない。
$ gsettings list-schemas org.gnome.yelp org.gnome.Evince.Default org.gnome.system-tools.users com.canonical.indicator.datetime (中略) org.gnome.system.smb org.gnome.desktop.lockdown
スキーマ内のキー(設定項目)一覧の取得作業例
内部コマンド名は「list-keys」,引数にはスキーマを指定する。
$ gsettings list-keys org.gnome.yelp font-adjustment show-cursor
キー(設定項目)の値の取得作業例
内部コマンド名は「get」,引数にはスキーマとキーを指定する。
$ gsettings get org.gnome.yelp font-adjustment 0 $ gsettings get org.gnome.yelp show-cursor false
キーの値には整数や文字列,真偽値(true/false)などの色々な型があり、配列型の場合は
['dog', 'rabbit', 'crocodile', 'lion']
のような(シングルクォートされた文字列をコンマ(+半角スペース)区切りにして角括弧で囲んだ)形で表示される。
キー(設定項目)の値の書き込み作業例
内部コマンド名は「set」,引数にはスキーマ,キー,新しい値を指定する。
(以下はyelpの設定を変更するので、実行には注意が必要) $ gsettings set org.gnome.yelp font-adjustment 4 $ gsettings set org.gnome.yelp show-cursor true
配列型のデータを指定する場合、値の全体をクォートする。
(このスキーマは存在しないので、実行しても意味はない) $ gsettings set com.example.magic.greeting friends "['eel', 'mouse', 'skunk', 'headfish', 'mouse', 'rhinoceros']"
関連記事:
使用したバージョン:
- GLib 2.28.6
関連URL: