linux - bash,查找焦点窗口的顺序(类似于 alt+tab 菜单)
问题描述
高级别的,我正在尝试创建一个实用程序,我可以在其中映射某些键以聚焦某个名称的最近聚焦的窗口。
例如,按 sup+c 将聚焦 chrome;如果没有打开 chrome 窗口,它将创建一个新的 chrome 窗口;如果打开了多个 chrome 窗口,它将聚焦最近聚焦的一个。同样, sup+t 可以对终端等执行相同的操作。
我可以xdotool search --name <window-name>
用来查找某个名称的窗口 ID。我可以xdotool windowactivate <id>
关注那个窗口。
但是,xdotool search
返回匹配窗口的所有 id;而我想找到最后一个聚焦的匹配窗口。
1)有没有办法按最后关注的方式对此进行排序?
2)或者也许是一种通过last-focus获取所有窗口的方法,然后我可以将该列表与返回的id进行比较xdotool search
?
3)或者也许一种在窗口焦点发生变化时调用回调的方法,以便我可以手动跟踪按最后焦点排序的窗口?
4)还有其他方法吗?
解决方案
偶然发现,似乎xdotool search
已经从最旧的聚焦窗口(顶部)到最近聚焦的(底部)排序。
如果您打开 4 个终端窗口,并使用 打印它们的 id xdotool getactivewindow
,那么在一种 typexdotool search --name terminal
中,它们的 id 将按上述顺序打印。
编辑:显然情况并非总是如此。虽然这在过去几天对我有用,但我注意到 Chrome 窗口将列在其他窗口上方,无论焦点顺序如何。
推荐阅读
- python - 提取 HTML 元素时在 CSV 中添加新行
- mongodb - MongoDB 聚合查询 Null 字段
- datagrid - Vaadin 14 datagrid 中的项目详细信息数据渲染不正确
- kubernetes - ApplicationInsight 未从 AKS pod 获取遥测数据
- python - Spyder Python IDE 中的换行问题
- r - 具有共享 x 轴的子图但显示每个图的 x 轴
- javascript - 计数页面上的可见项目并在用户单击加载更多 js 时更新
- jquery - 尝试将数组传递给 ajax 加载函数,但我的控制器没有正确获取数组
- python - Getfem++ 已安装在 Ubuntu 18.04 上,但无法正常工作
- ihp - 在没有许多的地方选择一些