web-dev-qa-db-ja.com

ルートウィンドウを制御しているプロセスを見つけるにはどうすればよいですか?

ここで説明する方法を使用して、xscreensaverをデスクトップの背景/壁紙として実行しようとしています: https://wiki.archlinux.org/index.php/XScreenSaver#Animated_wallpaper そして最初のステップルートXウィンドウを制御するプロセスを強制終了していますが、それがどのプロセスであるかわかりません。

理想的には、このプログラムの名前を自分で取得する方法を学びたい[ちなみにps aux | grep rootは実際には役に立たない]そしてそこから、このプログラムが起動時に開始したり、ルートXの制御をアサートしたりしないようにする方法を理解したい窓。

ただし、これがCinnamonでどのプログラムになるかを知っている人なら誰でも問題を解決するのに役立ちます。当然、このプログラムの停止/無効化または/usr/lib/xscrensaver/glmatrix -rootの開始/有効化に関する追加情報もありがたいです。

1
0x5f3759df

ルートウィンドウは、Xサーバーの特別なウィンドウです。関連するアプリケーションはありません。

Wikiはここでルートウィンドウを不適切に参照しています。それらが意味するのは、最近のデスクトップ環境で一般的に見られるようにルートウィンドウをマスク/非表示にするウィンドウ(通常はデスクトップと呼ばれ、多くの場合、ファイルマネージャーによって実装されて_~/Desktop_フォルダー)。

これらのxscreensaverウィジェットは、実際にはルートウィンドウのコンテンツを更新することで機能します。したがって、それを非表示にするDesktopウィンドウと、ルートウィンドウの上に表示される他のウィンドウを削除する必要があります。

あなたが探してみることができるのは、ウィンドウマネージャに「デスクトップ」の「ウィンドウタイプ」を登録するウィンドウのプロセスIDです。あなたは次のようなことをすることができます:

_xwininfo -tree -root |
  pcregrep -o '^\s+\K0x\S+' |
  xargs -n1 xwininfo -wm -id |
  pcregrep -Mo '(?s)Window type:\s+Desktop.*?Process id: \K\d+' |
  sort -u
_

(_xwininfo -tree_はすべてのウィンドウを一覧表示し、最初のpcregrepはウィンドウIDを抽出し、2番目のxwininfoはそれぞれのWMプロパティ(ウィンドウタイプとpidを含む)を取得し、次に2番目のpcregrepそれらのPIDを抽出するデスクトップウィンドウ)。

次のコマンドを実行することもできます。

_xprop _NET_WM_PID
_

そして、デスクトップをクリックします。あるいは:

_xkill
_

そして、デスクトップをクリックしてそのウィンドウを強制終了します。

いずれにせよ、ウィンドウマネージャのようないくつかの重要なプロセスによって非常にうまく処理される可能性があるため、そのウィンドウ/プロセスを強制終了することは安全ではない可能性があることに注意してください。

cinnamonの場合、少なくともLinux mint 18.1 cinnamonエディションのデフォルトのデスクトップ環境では(cinnamonファイルマネージャー)nemoのように見えるので、それを殺してもほとんど害はありません。

3

あなたのタイトルは誤解を招く可能性があります。あなたができるルートウィンドウを見つけるために:

xprop -root | grep PID

とともに -rootフラグを使用すると、デスクトップのクリックを省略でき、grep PIDあいまいなWMを使用している場合でも、ルートウィンドウのPIDを見つけることができます。まあそれはおそらくTWMでは動作しません。

私の側では、出力はtisのようになります。

xprop -root | grep PID
I3_PID(CARDINAL) = 3134

しかし、このプロセスはあなたの壁紙を設定しません。壁紙を設定するプログラムを強制終了することはできません。それは、それを実行してから終了するからです。 (ウィンドウマネージャーを強制終了するべきではありませんが、nemoを強制終了しても害はありません。)

シナモンの壁紙を無効にしてみることをお勧めします。

Linuxの質問 に関するこの回答が役立つかもしれません:System Settings > Backgrounds > Settings > Picture Aspect 'No Picture'

これが機能しない場合は、デスクトップを無効にする必要があります。

man nemo言う:

   --no-desktop
          Do  not  manage  the desktop — ignore the preference
          set in the preferences dialog.

そして i3 faq では、このコマンドがnemoのデスクトップウィンドウを無効にすることがわかります。

gsettings set org.nemo.desktop show-desktop-icons false
0
ctx