在我的脚本中,我想根据当前活动的应用程序执行不同的操作。如何获取当前活动窗口类名称?
有一个非常相似的问题:xdotool:如何测试当前窗口是否属于bash脚本中的某个类?但是人们只想检查活动窗口和按类名搜索的窗口是否相同。虽然我想实际获取班级名称。
我也看过https://superuser.com/a/615946/873855人们想要获取窗口名称的地方。我的任务与此非常接近。 xdotool 或 wmctrl 可以做到这一点吗?
答案1
如果您想在 X11 或 Wayland 中的 XWayland 窗口中执行此操作,可以使用 xdotool 完成(返回应用程序类的名称):
$ xdotool getactivewindow getwindowclassname
VSCodium
如果活动窗口是非X11(wayland),它将返回:
XGetWindowProperty[_NET_ACTIVE_WINDOW] failed (code=1)
xdo_get_active_window reported an error
答案2
解决办法是:
WINDOW_ID=$(xdotool getactivewindow)
CLASS_NAME=$(xprop -id $WINDOW_ID | rg WM_CLASS | cut -d '"' -f2)
我找不到相关文档getwindowclassname