我正在尝试编写一个根据当前活动程序以不同方式执行的脚本,并且我想知道是否有任何方法可以通过编程找到它。
例如,我来自 Mac 世界,在 Apple 的 Applescript 中您可以执行以下操作:
set appPath to the path to the frontmost application
set appName to the name of file appPath
这将为您提供当前正在运行的应用程序的名称。
在 ubuntu-land 中我可以做类似的事情吗?
谢谢!
答案1
xprop
可以告诉你活动窗口的 ID
xprop -root|grep '^_NET_ACTI'
您可以使用的输出wmctrl
找出所有窗口的名称,并与其 ID 匹配
wmctrl -l
wmctrl
sudo apt-get install wmctrl
不在默认安装中,所以您当然需要。
请注意, 的输出中没有左填充xprop
,因此我们需要在 的输出中 grep 之前对其进行填充wmctrl
。总的来说,类似下面的代码应该可以做到这一点:
$ WINID=$(xprop -root|grep '^_NET_ACTI' |sed -e 's/.*# //' -e 's/0x/0x0/')
$ wmctrl -l |grep $WINID
0x07c00006 0 my-hostname The Title of The Window