Lubuntu 18.04のターミナルエミュレーター(lxterminal)のタブで、xwininfo
によって、タブ内の同じ場所(シェルが表示されている場所)をクリックして、ウィンドウIDを見つけようとします。
$ xwininfo -int | grep -Po '(?<=Window id: )[0-9a-zA-Z]+'
31457283
またはxdotool
によって
$ xdotool selectwindow
35652689
xwininfo
とxdotool
が異なるウィンドウIDを提供するのはなぜですか?
したがって、ウィンドウIDが異なると、プロセスIDも異なります。
$ xdotool getwindowpid 31457283
1480
$ ps aux | grep -i 1480
t 1480 0.1 0.3 473204 31240 ? Sl Nov21 23:18 lxterminal
$ xdotool selectwindow getwindowpid
window 35652689 has no pid associated with it.
異なるウィンドウIDの問題は、lxterminalのタブ内だけでなく、タブfirefox内、またはevinceのウィンドウ内でも発生します。 2つの方法が同じウィンドウIDを与えるウィンドウの内側をクリックしても、アプリケーションが見つかりません。
これらは2つの異なるものです。
xdotool selectwindow
およびxwininfo -int
によって返されますxdotool selectwindow getwindowpid
およびxprop | grep _NET_WM_PID
によって返されます( XOrgの追加ウィンドウプロパティ がある場合)プロセスIDはカーネルのプロセスIDであり、プロセスの強制終了、タスクのスケジューリングなどに使用されます。
ウィンドウIDは、ウィンドウのサーバーのウィンドウ識別子です。 1つのプロセスで任意の数のWindowsを生成できます。多くの場合、複数のWindowsが生成されます。 GIMPが画面全体にフリーフロートを持っているダイアログの数を考えてください。
この場合、プロセスIDは質問を統合するだけですが、同じウィンドウをターゲットにしている場合は、単一のターゲットの場合と同じ結果が得られますために
xdotool selectwindow
xwininfo -int
両方を同じ行で実行し、ダブルクリックして、両方が何を言っているかを確認します。
xwininfo -int | grep -Po '(?<=Window id: )[0-9a-zA-Z]+'; xdotool selectwindow;
lxterminal
をインストールし、表示されているものがすべて一意であることを確認しました。再現できません。