Answers:
使用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
它是非常好的...