Linux Mint Cinnamon - dconfメモ-3

■ 初めに

  • その1でdconf watchしたスキーマの変換で上手くいかないケースがあること書きました、そのケースについてのメモです。本説明ではアプリ「端末(Terminal)」の設定を使います。

  • 前提はLinux Mint Cinnamon - dconfメモ-1です。



■  説明の前に

「端末」アプリの設定にある プロファイル ついて書きます。

「端末」アプリ

◆ アプリ「端末」の設定を開きます

デフォルトでは「名前なし」というプロファイルが1つあります。
これに「ぷ2」というプロファイルを追加後、デフォルトのプロファイルに指定します。

デフォルトプロファイルが「名前なし」
右下に「名前なし」のプロファイルIDが表示されています
プロファイル「ぷ2」を追加した状態
右下に「ぷ2」のプロファイルIDが表示されています

◆ dconf-editorでプロファイルの追加前/後を確認

  • dconfエディタでプロファイル「ぷ2」の追加前/後のフォルダを確認

    • プロファイル追加前
      サブフォルダ下にはデフォルトのプロファイルIDのみ

    • プロファイル追加後
      プロファイル「ぷ2」追加後はサブフォルダに「ぷ2」プロファイルIDが追加されます。

【追加前】プロファイル1つの時
defaultの値は「設定なし」のプロファイルID
【追加後】プロファイル「ぷ2」を追加すると
サブフォルダの下に「ぷ2」のIDが追加される。


デフォルトのプロファイルを「ぷ2」に変更

デフォルトのプロファイルを「ぷ2」に変更
default値が「ぷ2」のプロファイルIDに変ります


◆ まとめ

  • 端末の設定でプロファイルを追加すると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」です。

①がスキーマのid
②がベルを鳴らすフラグを保持する項目
右側の○は、ベルを鳴らす/鳴らさないフラグ

次に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」が得られる

dconf-editorでパス確認
$ 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

#Linux #LinuxMint


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