我需要一个解决方案来获取 Gnome 2 桌面上当前活动(聚焦)窗口信息。我最感兴趣的是运行该窗口的进程和窗口标题。
是否可以?
解决方案:
获取窗口标题:
xwininfo -root -children | grep $(printf '%x\n' $(xdotool getwindowfocus)) | grep -oEi '"[^"]+"' | head -1
获取进程名称:
ps -e | grep $(xdotool getwindowpid $(xdotool getwindowfocus)) | grep -v grep | awk '{print $4}'
或者:
cat /proc/$(xdotool getwindowpid $(xdotool getwindowfocus))/comm
答案1
就这么简单:
xdotool getactivewindow getwindowname
祝你好运,希望它对你有用!
答案2
答案3
比OP的解决方案更简单(IMO)(即没有ps
,grep
和awk
),获取进程名称:
cat /proc/$(xdotool getwindowpid $(xdotool getwindowfocus))/comm
或者如果你想要行尾:
echo $(cat /proc/$(xdotool getwindowpid $(xdotool getwindowfocus))/comm)
答案4
尝试 xwininfo 命令,http://www.xfree86.org/4.2.0/xwininfo.1.html,它肯定会返回窗口标题,就进程而言,嗯......
X 为其分配了一个 ID,并成为窗口的父 PID,并且默认情况下也会隐藏它,因此,假设 Gnome 支持 NET_WM_PID,正如 2001 年的补丁所示,http://mail.gnome.org/archives/gtk-devel-list/2001-October/msg00238.html,然后我们可以回顾这篇文章,http://www.mail-archive.com/[电子邮件受保护]/msg05809.html,作者编写了一个简短的 C 程序来将 Window ID 转换为 PID,瞧。