回答:
xdotoolを使用する
まずxdotool
、システムで利用できることを確認します。
sudo apt-get install xdotool
次のコマンドは、現在フォーカスされているウィンドウのプロセス名を出力します。
cat "/proc/$(xdotool getwindowpid "$(xdotool getwindowfocus)")/comm"
ウィンドウにフォーカスする時間/クリックする時間を増やすには、短いスリープ時間を追加します。
sleep 5 && cat "/proc/$(xdotool getwindowpid "$(xdotool getwindowfocus)")/comm"
しばらくすると、プロセス名が表示されます。
wininfoを使用する
Wininfoは、ウィンドウに関連付けられたPID(プロセスID)など、ウィンドウとそのプロパティに関するさまざまな情報を表示するグラフィカルユーティリティです。
wininfo
公式リポジトリで入手できるはずです:
sudo apt-get install wininfo
ウィンドウのPIDを決定したら、それに関連付けられているプロセス名を検索できます。これを行うには、たとえば次のようなさまざまな方法があります/proc
。
$ cat /proc/17002/comm
gnome-terminal
これは、PIDに関連付けられたプロセス名になります17002
。
@Rmanoが示唆するように、プロセスツリーコンテキストを検査できるよりエレガントな方法:
$ pstree -a -s -l -p -u 17002
init,1
└─lightdm,1900
└─lightdm,3202 --session-child 12 19
└─lxsession,3307,glutanimate -s LXDE -e LXDE
└─openbox,3362 --config-file /home/glutanimate/.config/openbox/lxde-rc.xml
└─gnome-terminal,17002
├─bash,1841
├─bash,2332
├─bash,2424
│ └─pstree,2484 -a -s -l -p -u 17002
├─gnome-pty-helpe,1840
├─{gnome-terminal},1835
├─{gnome-terminal},1836
├─{gnome-terminal},1842
└─{gnome-terminal},2269
もちろんpstree
、xdotool
上記のオプションと組み合わせることもできます(これを指摘してくれた@ rubo77に感謝します!):
sleep 2; pstree -spaul $(xdotool getwindowpid "$(xdotool getwindowfocus)")
ソース:
echo $()
あなたのコマンドでは必要ありません。
xdotool getwindowpid "$(xdotool getwindowfocus)"
→xdotool getwindowfocus getwindowpid
次のコマンドでキーボードショートカットを作成できます。
zenity --info --text $(xprop $win_id WM_CLASS | cut -d" " -f4-)
java-window
。ウィンドウマネージャーの構成にアプリケーション固有のルールを実装しようとしていたとき、私はしばらく前にこの種の問題に遭遇しました。
xprop
クリックしたウィンドウのプロセスIDを取得するために使用できます。
xprop $win_id _NET_WM_PID
次にそれを分析しpstree
ます:
pstree -spaul $(xprop $win_id _NET_WM_PID | cut -d" " -f3-)
これにより、テキスト情報ウィンドウにリダイレクトできます
pstree -spaul $(xprop $win_id _NET_WM_PID | cut -d" " -f3-)|zenity --text-info --title "pstree of clicked Window"
私はこの最後のコマンドのキーボードショートカットを作成しようとしました(定期的に必要な場合)が、何らかの理由でこれは機能しません。
pstree -a -s -l -p -u $PID
...非常にいいですこれを