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


14

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"

gnome-tweak-toolのスクリーンショット ...しかし、誰もそれを推測できますか?また、たとえば、ヒントとアンチエイリアシングの対応する設定をどこで取得するかをどのように把握しますか?


1
TBH私はいつもキースペースをgrepすることに頼ってきました。例えばgsettings list-recursively | grep -e alias -e hint-より良い方法があるかどうか知りたい
-steeldriver

ソースコードやdconf-editor(または@steeldriverのようなgsettingsを直接参照する)を除いて、だれもできることはほとんどありません。
ムル

回答:


22

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

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

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

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

    ここに画像の説明を入力してください

    ...そしてそこにいます。

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データベースの整合性を保護するために、後者がより適切なプラクティスであると見なされます。

こちらこちらご覧ください


これは素晴らしいです、ありがとう。小さな質問:(1)「gsettingsキーが存在する場合」をどのように知ることができますか?(2)すべての意図と目的がユーザーと同一である2つのコマンドラインインターフェイスのポイントは何ですか?(3)「ここ」の最初と3番目の違いは何ですか?私には同じページのように見えます。
-st01

@ st01(1)では、gsettingsコマンドを単純に実行し、それがジョブを実行するかどうかを確認するか、dconfエディター(デフォルトではインストールされませんが、優れたツール)でgsettingsキーが存在するかどうかを確認できます。(2)gsettingsは、dconfデータベースを編集するためのCLIフロントエンドです。Gsettingsはデータベースの整合性もチェックするため、dconfデータベースを直接編集するよりも望ましい方法です。gsettingsはより高いレベルなので、遅いです。(3)、ああ、それはばかげている:)、あなたは正しい。編集
予定

@JacobVlijmどうもありがとう!あなたは私の命を救いました!!
マルスロー

8

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

  • のリストを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以内でも機能すると思います。

ここに画像の説明を入力してください


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

ここに画像の説明を入力してください


1
非常に便利です、ありがとう、このような設定をすべてダンプできるとは知りませんでした。
st01

1
これは素晴らしいです、どうもありがとう!gsettingsをいじり回すと、古い設定を復元できるようになりました。
ニコラス・ストンメル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.