首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wmctrl有哪些替代方案?

wmctrl有哪些替代方案?
EN

Stack Overflow用户
提问于 2010-11-25 06:41:51
回答 6查看 16.5K关注 0票数 14

你知道wmctrl有什么替代方案吗?这是一个可以让你从命令行操作窗口和窗口管理的程序。

wmctrl的一个缺点是,虽然您可以操作当前窗口,但您无法让wmctrl列出有关当前窗口的信息(它忽略了-r)。

EN

回答 6

Stack Overflow用户

发布于 2011-12-31 22:22:47

要查找当前活动窗口的id,请使用:

代码语言:javascript
复制
xprop -root -f _NET_ACTIVE_WINDOW 0x " \$0\\n" _NET_ACTIVE_WINDOW | awk "{print \$2}"

使用此id,您可以获得有关当前活动窗口的大量信息:

代码语言:javascript
复制
xprop -id $(xprop -root -f _NET_ACTIVE_WINDOW 0x " \$0\\n" _NET_ACTIVE_WINDOW | awk "{print \$2}")

从那里,您可以grep您需要的东西,或者使它只显示所需的字段,与我上面提取_NET_ACTIVE_WINDOW的方式相同。因此,要找到当前活动窗口的PID,您可以将-f _NET_WM_PID 0c " \$0\\n" _NET_WM_PID附加到上面的命令,使其成为:

代码语言:javascript
复制
xprop -id $(xprop -root -f _NET_ACTIVE_WINDOW 0x " \$0\\n" _NET_ACTIVE_WINDOW | awk "{print \$2}") -f _NET_WM_PID 0c " \$0\\n" _NET_WM_PID | awk "{print \$2}"

请注意,结合使用-i标志,wmctrl也接受相同类型的id。

票数 11
EN

Stack Overflow用户

发布于 2011-10-19 23:13:31

您可以通过打开详细模式并告诉wmctrl使用无效参数移动活动窗口来欺骗wmctrl输出活动窗口的ID号:

代码语言:javascript
复制
wmctrl -v -r :ACTIVE: -e dummy

虽然这确实会以错误状态退出,但它还会输出活动窗口的ID号:

代码语言:javascript
复制
envir_utf8: 1
Using window: 0x08400004
The -e option expects a list of comma separated integers: "gravity,X,Y,width,height"

获得活动窗口的ID号后,您可以列出所有窗口并搜索该ID号:

代码语言:javascript
复制
 wmctrl -l

使用wmctrl获取有关活动窗口的信息很笨拙,但这是可能的。

票数 9
EN

Stack Overflow用户

发布于 2013-10-12 20:35:06

xdotool是一个合理的替代方案(github project here),尽管不幸的是the author doesn't seem to care about it much any more

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4272232

复制
相关文章

相似问题

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