web-dev-qa-db-ja.com

gnome-Tweak-toolによって行われた設定をスクリプト化するにはどうすればよいですか?

OSを再インストールするときにスクリプトを実行して、好みの設定を取り戻すことができるように、コマンドラインから設定できるようにしています。

Ubuntu 17.10に「アップグレード」して以来、gnome-Tweak-toolを使用して設定を希望どおりに取得する必要があることがわかりました。

Gnome-Tweak-tool GUIで設定を見つけたら、そのスクリプト化可能な翻訳をどうやって見つけることができますか?

たとえば、次のgsettings行は、下のgnome-Tweak-toolスクリーンショットの関連エントリに一致します...

gsettings set org.gnome.desktop.wm.preferences titlebar-font "Tahoma Bold 8"
gsettings set org.gnome.desktop.interface font-name "Tahoma 8"
gsettings set org.gnome.desktop.interface document-font-name "Tahoma 8"
gsettings set org.gnome.desktop.interface monospace-font-name "FixedSC 10"

screen shot from gnome-Tweak-tool ...しかし、だれでもそれを推測できるでしょうか?また、たとえば、ヒントとアンチエイリアスの対応する設定をどこで取得するのかをどのように把握しますか?

12
st01

設定されているものを簡単に見つける

オプションのディレクトリ全体を検索する代わりに:

  1. ターミナルウィンドウを開く
  2. コマンドを実行します:

    dconf watch /
    
  3. 変更を加えて、ターミナルに表示される内容を確認します。

    enter image description here

    ...そしてあなたはそこにいます。

Dconfとgsettings

例では、dconfからの出力が表示されます。 Gsettingsは、dconfのクライアントです。多くの場合、dconfコマンドまたはgsettingsコマンドの両方を使用できます。この場合、次のいずれかです。

dconf write /org/gnome/desktop/background/show-desktop-icons false

または:

gsettings set org.gnome.desktop.background show-desktop-icons false

ただし、gsettingsキーが存在する場合は、dconfデータベースの整合性を保護するために、後者がより適切なプラクティスであると見なされます。

here および here も参照してください。

19
Jacob Vlijm

ほとんどの設定では、 this アプローチを使用できます。

  • gsettingsのリストを一時ファイルにエクスポートします。

    gsettings list-recursively > /tmp/gsettings.before
    
  • gnome-Tweak-tool(またはunity-control-center)で変更を加えます。

  • gsettingsのリストを別の一時ファイルにエクスポートします。

    gsettings list-recursively > /tmp/gsettings.after
    
  • 2つのファイル(。beforeおよび。after)を比較し、違いを取得します。

    diff /tmp/gsettings.before /tmp/gsettings.after | grep '[>|<]'
    

    または、新しい値のみを比較して取得します( source ):

    diff /tmp/gsettings.before /tmp/gsettings.after | grep -Po '> \K.*'
    

    または、新しい値のみを比較して取得しますが、行の先頭をgsettings setに置き換えて、スクリプトファイル内に直接保存されるコマンドのリストを準備します( source ):

    diff /tmp/gsettings.before /tmp/gsettings.after | sed 's/>/gsettings set/;tx;d;:x'
    

これらのコマンドはすべて1行で実行できます(または、プロセスを自動化するスクリプトを作成できます)。

gsettings list-recursively > /tmp/gsettings.before; gnome-Tweak-tool; gsettings list-recursively > /tmp/gsettings.after; diff /tmp/gsettings.before /tmp/gsettings.after | grep '[>|<]'

次のデモはUbuntu 16.04内で作成されます。このアプローチは17.10以内でも機能すると思います。

enter image description here


更新:Ubuntu 17.10内で簡単な方法を見つけました:

enter image description here

8
pa4080