首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何激活xfce4 4/xfwm4 4中最近聚焦的应用程序窗口?

如何激活xfce4 4/xfwm4 4中最近聚焦的应用程序窗口?
EN

Unix & Linux用户
提问于 2018-04-20 22:49:14
回答 1查看 384关注 0票数 0

我将我的函数键用于特定的应用程序(F1 chrome、F2终端等)。我有一个脚本绑定到一个快捷键来激活正确的应用程序,这是可行的,但它没有激活最近聚焦的窗口。该脚本使用wmctrl -lx列出窗口,该窗口似乎是按反向创建顺序列出的。是否有任何方法要求或跟踪特定的订单窗口被激活,以便我可以脚本“激活最近的终端窗口”?

或者,如果我能够获得由xfwm4维护的窗口堆栈顺序(当您在窗口中循环时使用它),这似乎也可以解决我的问题,但我没有看到一个命令行接口来获得该窗口堆栈顺序。

EN

回答 1

Unix & Linux用户

发布于 2018-04-21 01:31:51

在脚本中,可以使用wmctrlxpropawk来使用窗口管理器维护的激活时间。(见例如( wm-spec 1.5)。例如,使用(多行)命令行,如下所示:

代码语言:javascript
复制
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}' \
    )

用词:

  1. 通过筛选传递wmctrl列表,以选择命名应用程序的窗口ids (上面示例中的“终端”);然后
  2. 通过(最内部的) xprop获得最后一次使用时间的(假装)窗口id,以及
  3. 使用另一个(外部) xprop获取时间戳,该时间戳是原始窗口的_NET_WM_USER_TIME_WINDOW的“假装窗口”的(单个)属性;然后
  4. 将所有得到的id和时间戳行传递给一个awk过滤器,该过滤器用最大的时间戳报告id。
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/439037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档