Linux Mint Cinnamon - dconfメモ-1

■ dconfについて

  • dconfはデスクトップやアプリの設定内容を保持するデータベースです。Windowsならレジストリに相当します。

    1. dconfデータベースを操作するコマンドは下記2つ

      • dconfコマンド→dconfデータベースを操作したり、読み書きするコマンドです。

      • gsettingsコマンド→dconfデータベースの「データ読み書き」操作ができます。dconfコマンドではデータを書く時に存在しないパスを指定すると、パスを作ってしまうので本メモでは、その心配の無いgsettingsを使います。

    2. cinnamonや一部のアプリでは設定をdconfデータベースに記録するためdconfデータベースの値を変更することで、設定を行うことが出来ます。



■ dconf-editor導入

エディタを使うとdcofデータベースに格納された各値をGUI上で確認できます。インストールされていない場合は下記コマンドでインストールします。

sudo apt install dconf-editor

起動すると、パスの構造や設定値を確認することが出来ます。

dconf-editor


■ デスクトップの背景画像変更

dconfデータベースの値を変更してデスクトップの背景画像を変えるには、データの書かれた場所(=スキーマid)を知らなくてはなりません

下記ではデスクトップ背景画像の変更時に行われるdconfデータベースへの登録情報をキャプチャする事でスキーマidを取得し、取得したスキーマ情報を元にgsettingsコマンドでデスクトップ背景画像を変更します。

「システムの設定」の「背景」を起動します
起動画面
「端末」を起動
「dconf watch /」と入力します。

このコマンドは、dconfデータベースが変更されると
変更したスキーマと変更値を表示してくれます。
どの壁紙でも良いのですが今回は「Blanket」を設定します。
壁紙を変更すると「端末」に変更があったスキーマidと変更値が表示されます
この値を使ってgsettingsコマンドの引数を作ります。

画面には壁紙と拡大表示オプションの
それぞれの"パス+値"が表示されていますが
今回は壁紙の指定のみ使用します
  • 壁紙のスキーマーidは画面より「/org/cinnamon/desktop/background/picture-uri」になります

  • スキーマid →パス、キー変換

    • スラッシュ「/」を「.」に置き換えます。この時に「/org」の最初のスラッシュは削除します。

    • パス最後の「picture-uri」がキーになります。

  • 上記変換で、
    パスは「org.cinnamon.desktop.background」、
    キーは「picture-uri」
    でgsettingsコマンドを入力します。
    書式は「gsettings set パス キー '設定値'』の形式です

gsettings set org.cinnamon.desktop.background picture-uri 'file:///usr/share/backgrounds/linuxmint-wilma/aksenapati_blanket.jpg'

指定した壁紙「aksenapati_blanket.jpg」を他の壁紙のファイル名に変更すれば、背景がコマンド入力と同時に変ります。

dconf-editorでキー「picture-uri」を開いたときの画面


コマンドを使って現在の設定値を表示するには「gsettings get パス キー』を使います。

gsettings get org.cinnamon.desktop.background picture-uri



最後に

  • 例えばデスクトップのフォントを変え「dconf watch /」でフォントのスキーマidを取得すれば、コマンドてフォントを変更することも可能です。他にも応用可能ですが一部ではgsettingsコマンドよる変更が反映されないアプリやcinnamon設定があります。またdconfデータベースを使わないで独自に設定を管理するアプリ等では上記の方法は使えません。

  • この方法でシステムとアプリ設定のgsettingsスクリプトを作っても、バージョンアップに伴い使えなくなることも予想されるので、あまり依存しない方が良いかと思います。あとgsettingsのパス取得手順が上記と異なるものがあり、それは「その2」で。

  • dconfは理解できなかった機能も多く、使用した用語についても正式名でないものを含んでいるかもしれません。今後わかった事があれば、メモを変更したいと思います。

その2へ続く

#Linux #LinuxMint

いいなと思ったら応援しよう!