web-dev-qa-db-ja.com

真剣に、dconf、gconf、gsettings ...端末設定を保存するにはどうすればよいですか?

私はほとんどの人が一度にやりたかった比較的簡単なことをしようとしています:gnome-teminal設定を保存します。

14.04(明らかにデスクトップ)を実行しています。私の調査から、dconf、gconf、およびgsettingsは、最後のいくつかのバージョンのバンプの過程で、Gnome/Unityのさまざまな側面の設定を保存するように指定されていることがわかりました。

これらのツールについて私が持っているすべての質問をする場合。制御不能になり、3つのツールの内部(gconftool、gconftool-2、gconfd-2、dconf-service、dconf-ibus、dconfデータベースを個別のツールとして数えると8つ)を学びたくありません)

私の新しい目標は、ほとんどの既存の設定が含まれているため、すべての設定をgsettingsに統合することです。

これは行われましたか?

Gconfスキーマの登録を解除できると判断しました。

私は、gsettingsがdconfデータベース上で非常に親しみやすいインターフェース(つまり、コマンドラインツールで誰もが要求できる最高のタブ補完)で動作することを確認しました。

時間の投資を除いて、gconfからdconfに構成を移動し、それらの設定のgsettingsスキーマを作成するだけの大きな警告があります... gnome-terminalの設定やその他のUI設定を簡単に保存できるようにするためそれを調整したいですか?

[編集:]

以下の@Rinzwindのコメントのおかげで、gconfを無視することにし、gnome-terminalの設定を見つけました。ただし、これは2つのキーexec-argexec

追加できるすべてのキーのリストはどこにありますか?

4
blanket_cat

これは古い質問ですが、明らかに関連性があります。

この便利な投稿 に基づいて、GNOMEターミナルの設定をバックアップ/復元する方法を次に示します。これは、たとえば、あるコンピュータから別のコンピュータに移行するときに使用できます。

*注意してください*:これにより、新しいマシンのデフォルトのターミナルプロファイルが上書きされます!

  1. [設定]ダイアログの[プロファイル]で名前を変更して、両方のマシンで同じプロファイル名を使用していることを確認し、必要に応じてアクティブにします(ドロップダウンメニューをクリックして[デフォルトとして設定]を選択します)。
  2. ソースマシンで、次の小さなスクリプトを実行します。

    gprofile=$(gsettings get org.gnome.Terminal.ProfilesList default)
    gprofile=${gprofile:1:-1}
    gschema=org.gnome.Terminal.Legacy.Profile
    gpath=/org/gnome/terminal/legacy/profiles:/:${gprofile}/
    gsettings list-recursively ${gschema}:${gpath} > /tmp/term_profile.gsettings
    
  3. プロファイルバックアップファイル(/tmp/term_profile.gsettings)を調べて、適切に見えることを確認します。持ち越したくない不要な設定を削除すると便利な場合があります。

  4. バックアップファイルを新しいコンピュータにコピーします。例:

    scp /tmp/term_profile.gsettings new-Host:/tmp
    
  5. 新しいコンピューターで次の小さなスクリプトを実行します。予行演習から始めて、予期しないものを見つける機会を得ます。

    gprofile=$(gsettings get org.gnome.Terminal.ProfilesList default)
    gprofile=${gprofile:1:-1}
    gschema=org.gnome.Terminal.Legacy.Profile
    gpath=/org/gnome/terminal/legacy/profiles:/:${gprofile}/        
    cut -f2- -d' ' /tmp/term_profile.gsettings | while read line; do
       key=$(echo $line | cut -f1 -d' ')
       value=$(echo $line | cut -f2- -d' ')
       echo "$key => $value"
       # commented out for dry-run:
       # gsettings set ${gschema}:${gpath} $key "$value"
    done
    
  6. 出力に問題がないと想定して、上記のスクリプトを繰り返しますが、gsettings set行のコメントを外します。変更(例:パレットの変更)は、実行中のターミナルにすぐに適用されます。

19.10でテストされていますが、一部の古い(そしておそらく新しい)バージョンでも動作するはずです。

これは「プロファイル」の下にある設定のみを処理することに注意してください。関連するgsettingsキーが見つかると想定すると、このテクニックはそれらをバックアップ/復元するためにも機能するはずです。

0
sxc731