web-dev-qa-db-ja.com

gksudoによるGTKテーマの保持

私は、2人の(同時ではない)ユーザーがコンピュータにいて、両方がSudoグループに属しています。たとえば、更新マネージャーを実行しているときに、gksudoを使用してユーザーのGTKテーマを保持する方法はありますか?デフォルトでは、Raleighテーマが使用されます。

Lubuntu 14.04を、シンプルなウィンドウマネージャー(Blackbox)で使用し、ディスプレイマネージャーは使用していません。

2

gksudoで起動したアプリケーションがユーザーのテーマを使用していない理由がわかりません。フルLubuntuシステムで動作します。 (ただし、BlackboxではなくOpenboxを使用しています。)幸いにも:

  • Update Managerのようなプログラムの最良の解決策は、おそらくpolkit(通常は存在する)をインストールして、Update Manager without gksudoを実行することです。 (下記の方法1を参照してください。)
  • ルートとして起動する必要があるアプリケーションの場合、またはpolkitをインストールしたくない場合の回避策は、 で目的のテーマをGTK_THEME で指定することです(方法2およびを参照)。方法3)。

方法1:polkit(別名PolicyKit)をインストールします。

次のようなユーティリティに最適なソリューション:

  • ソフトウェアアップデーター/アップデートマネージャー(update-manager
  • Ubuntuソフトウェアセンター(software-center
  • Lubuntuソフトウェアセンター(lubuntu-software-center
  • ソフトウェアとアップデート(software-properties-gtk

... Ubuntuの他のシステム管理ユーティリティの多くは、ルートとして実行しないだけです。

これらのユーティリティは polkit と統合され、必要に応じて(Sudoの代わりに)認証を実行するために使用するため、通常、これらのユーティリティをrootとして実行する必要はありません。ユーザーインターフェイスを表示するプログラムは、実際にはrootではなくユーザーとして実行されるため、ユーザーアカウントの構成に従って表示されます。

通常、Lubuntuシステムでも、これを実現するために特別なことを行う必要はありません。 Ubuntuは、これらのユーティリティを特別な設定なしで非rootユーザーとして実行できるように設計されています。

しかし、システムは特に最小限なので、おそらくpolkitがインストールされていません。 policykit-1をインストールすることで取得できます Install policykit-1 および policykit-1-gnome Install policykit-1-gnome パッケージ。

Sudo apt-get update
Sudo apt-get install policykit-1 policykit1-1-gnome

Polkitがインストールされている場合、これらのユーティリティは自動的にそれを使用する必要があり、ルートとして起動する必要はありません。

ただし、これは適切でない場合があります。

  • polkitをインストールしたくない場合は、または
  • ルートとしてGTK +プログラムを実行するためのがpolkit(LeafpadやGeditなど)を使用するように記述されていない。

方法2:gksudoを実行するときに、目的のGTK +テーマを設定します。

ルートとしてgeditを実行するとします。この手法は、他のGTK +プログラム(Update Managerなど)と同じように機能することに注意してください。

gksudo geditを実行する代わりに、以下を実行できます。

gksudo env GTK_THEME=HighContrastgedit

HighContrastを目的のテーマの名前に置き換えます。

env を使用します。これは、SudoSudo VARIABLE=name command構文をサポートしていますが、gksu/gksudoはサポートしていないためです。)

方法3:目的のテーマを設定するランチャーを作成します。

これは方法2と同じで、毎回コマンドを入力するのではなく、ランチャーを介してプログラムを実行するだけです。

ショートカットを作成するには LXDEでrootとして特定のGTK +テーマ(geditなど)を使用してプログラム(HighContrastなど)を実行するには、次のコマンドを実行します。

lxshortcut -o ~/Desktop/'gedit (as root)'

gedit (as root)の代わりに、ランチャーの表示名として必要なものを置きます。

そのコマンドを実行すると表示される[ファイルのプロパティ]ウィンドウで、[デスクトップエントリ]タブをクリックします。コマンドというラベルの付いたテキストボックスに、次のように入力します。

gksudo env GTK_THEME=HighContrastgedit

他はすべて空白のままにして、[OK]をクリックするだけです。

必要に応じて、実行中の実行可能ファイルの絶対パス(/usr/bin/gksudo、およびこの例では/usr/bin/gedit)を使用できます。ただし、これは通常は必要ありません。

enter image description here
gksudo env GTK_THEME HighContrast geditのランチャーを作成しています。 (コマンドの左側は表示されません。)

1
Eliah Kagan

私は実際にi3wmを使用するのと同じ問題を抱えています。 Lubuntuを使用しているため、lxappearanceがインストールされているはずです。これをgksudoで実行すると、選択したgksudoのテーマが表示されます。それを変更して適用すると、gksudoに必要なテーマが必要になります。

0
Richard Wong