Linux Mint Cinnamon - dconfメモ-3
■ 初めに
その1でdconf watchしたスキーマの変換で上手くいかないケースがあること書きました、そのケースについてのメモです。本説明ではアプリ「端末(Terminal)」の設定を使います。
■ 説明の前に
「端末」アプリの設定にある プロファイル ついて書きます。
◆ アプリ「端末」の設定を開きます
デフォルトでは「名前なし」というプロファイルが1つあります。
これに「ぷ2」というプロファイルを追加後、デフォルトのプロファイルに指定します。
◆ dconf-editorでプロファイルの追加前/後を確認
dconfエディタでプロファイル「ぷ2」の追加前/後のフォルダを確認
プロファイル追加前
サブフォルダ下にはデフォルトのプロファイルIDのみプロファイル追加後
プロファイル「ぷ2」追加後はサブフォルダに「ぷ2」プロファイルIDが追加されます。
デフォルトのプロファイルを「ぷ2」に変更
◆ まとめ
端末の設定でプロファイルを追加するとdconfデータベースのサブフォルダにプロファイルIDを追加された
default値は端末(Terminal)でデフォルトに設定されたプロファイルIDが設定された
上記操作を行っている時、dconf-editorの画面でサブフォルダにプロファイルIDが表示されない事がありました。
もし現象が出た場合は、表示されないプロファイルに対し「名前を変更…」を行ってください(名前は変更せずにそのまま「名前を変更」ボタンを押した後、dconf-editorの表示を更新すれば表示されます)
ここまでを下記説明の前提とします。
■ プロファイルを含むスキーマのgsettings
端末(Terminal)を起動して「設定」を開きます
「端末ベルを鳴らす」をオンにするgsettingsコマンドを、その1で説明した手法で取得&作成します。
「端末ベルを鳴らす」の値を変え、watchコマンドで確認すると
watchした画面のパスではエラーになります。
gsettings get org.gnome.terminal.legacy.profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9 audible-bell
スキーマ“org.gnome.terminal.legacy.profiles”がありません
「端末ベルを鳴らす」スキーマidをwatchで得たパスからdconf-editorで探すと「 org.gnome.Terminal.Legacy.Profile」です。
次にdconf-editorでプロファイルのスキーマパスをコピーします
/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/
パスの取得
dconf-editorにて①で取得した
スキーマid「org.gnome.Terminal.Legacy.Profile」の後に":"を付け
dconf-editorからコピーしたスキーマパスを結合します。watchした画面で得たスキーマidと①のパスidでは大文字/小文字や「s付」が異なります。①は「org.gnome.Terminal.Legacy.Profile」ですが、watchした画面で得たパスは「org.gnome.terminal.legacy.profiles」です。←最初この事に気が付かず悩んだ。
パス値「org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/」です
キーの取得
②の値「audible-bell」です
$ gsettings get org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/ audible-bell
false
$ gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/ audible-bell true
$ gsettings get org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/ audible-bell
true
上記gsettingsで「端末ベルを鳴らす」のフラグのget/setする説明
1行目のgetでフラグ値(false)の確認。
2行目のsetでフラグをtrueへ変更。
3行目のgetでフラグ値の確認です。
以上となります。
◆ 参考まで
上記では、プロファイルが複数登録出来て同じ設定項目を持つ例でしたが、プロファイルに関係なく共通の定義項目でも、上記のパス取得方法を使わないとgsettingsできないものがあり、少しモヤっとしてます。
dconf watchすると
「/org/gnome/terminal/legacy/keybindings/copy」が得られる
$ gsettings get org.gnome.Terminal.Legacy.Keybindings copy
スキーマ“org.gnome.Terminal.Legacy.Keybindings”は再配置可能です (パスを指定する必要があります)
$ gsettings get org.gnome.Terminal.Legacy.Keybindings:/org/gnome/terminal/legacy/keybindings/ copy
'<Primary>c'
dconf-editorで得たパスの後ろに、上記手順でパスを指定すると値が取れます
端末(Terminal)の「設定」で文字をコピーをするショートカット「Ctrl+shift+C」(私はctrl+cに変更して使用)は、プロファイルの切り替えに関係無く同じ値を使用するので、このような定義になっているようです。
最後に
dconfについてはこれで終了です。また何か分かりましたら追記します。
Linux Mint Cinnamon - dconfメモ-1