web-dev-qa-db-ja.com

Gtk + 3.0テーマのリロード

Gtk + 3.0テーマをカスタマイズしようとしています。テーマに変更を加えた場合、2つのテーマを(MyUnityを使用して)変更して、アプリケーションにテーマをリロードさせてテストします。しかし、それを行うと、テーマは更新されず、古いバージョンのままで、私の変更を認識できません。どうやらGtk +はどこかにテーマ情報をキャッシュしているようです。

セッションを閉じて再度開くと、テーマの変更に感謝できますが、変更ごとにこれを行うのは非常に面倒です。

テーマを更新して変更を確認する方法はありますか(たとえば、コマンドラインプログラムまたはGtk + API呼び出し)。

7
eagleoneraptor

これはかなり単純で効果的です。

  1. テーマの編集中にNautilusウィンドウを開きます
  2. killallでNautilusを強制終了し、ターミナルからnautilusを開きます
  3. テーマを変更し、nautilusを再度終了してから再起動します

難しいことをせずに行った変更を確認できます。テーマの変更するほとんどの要素は、Nautilusに反映されます。

4
Uri Herrera

このbash関数を使用して、シェルをリロードせずにテーマをリロードできます。~/.bashrcファイルに追加できます。

function reload_gtk_theme() {
  theme=$(gsettings get org.gnome.desktop.interface gtk-theme)
  gsettings set org.gnome.desktop.interface gtk-theme ''
  sleep 1
  gsettings set org.gnome.desktop.interface gtk-theme $theme
}

使用するには、次を実行します:

$ reload_gtk_theme
2
Ikbel