我将我的函数键用于特定的应用程序(F1 chrome、F2终端等)。我有一个脚本绑定到一个快捷键来激活正确的应用程序,这是可行的,但它没有激活最近聚焦的窗口。该脚本使用wmctrl -lx列出窗口,该窗口似乎是按反向创建顺序列出的。是否有任何方法要求或跟踪特定的订单窗口被激活,以便我可以脚本“激活最近的终端窗口”?
或者,如果我能够获得由xfwm4维护的窗口堆栈顺序(当您在窗口中循环时使用它),这似乎也可以解决我的问题,但我没有看到一个命令行接口来获得该窗口堆栈顺序。
发布于 2018-04-21 01:31:51
在脚本中,可以使用wmctrl、xprop和awk来使用窗口管理器维护的激活时间。(见例如( wm-spec 1.5)。例如,使用(多行)命令行,如下所示:
W=$(wmctrl -l | \
awk '$ ~ "Terminal" {print $1;}' | while read x ; do \
echo "$x $(xprop -id $(xprop -id $x \
| awk '$1 ~ /_NET_WM_USER_TIME/ {print $NF}' \
) \
| awk '{print $NF}' \
)" ; \
done | awk '$2>t {i=$1; t=$2} END {print i}' \
)用词:
wmctrl列表,以选择命名应用程序的窗口ids (上面示例中的“终端”);然后xprop获得最后一次使用时间的(假装)窗口id,以及xprop获取时间戳,该时间戳是原始窗口的_NET_WM_USER_TIME_WINDOW的“假装窗口”的(单个)属性;然后awk过滤器,该过滤器用最大的时间戳报告id。https://unix.stackexchange.com/questions/439037
复制相似问题