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"
...しかし、だれでもそれを推測できるでしょうか?また、たとえば、ヒントとアンチエイリアスの対応する設定をどこで取得するのかをどのように把握しますか?
オプションのディレクトリ全体を検索する代わりに:
例では、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
データベースの整合性を保護するために、後者がより適切なプラクティスであると見なされます。
ほとんどの設定では、 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以内でも機能すると思います。
更新:Ubuntu 17.10内で簡単な方法を見つけました: