当前位置: 首页>>技术教程>>正文


gnome – 如何在命令行上找到窗口的位置(在桌面上)?

,

问题描述

我正在尝试编写一个小脚本来帮助通过键盘快捷键管理我的窗口。

为了做我想做的事情,我需要能够找到 “active”(聚焦)窗口的当前位置和大小。位置是指桌面上窗口的 X、Y 坐标,尺寸是指窗口的高度和宽度。

是否有命令行实用程序可以获取此信息?

最佳办法

您可以使用以下命令获取当前活动窗口的所有信息:

xwininfo -id $(xprop -root | awk '/_NET_ACTIVE_WINDOW\(WINDOW\)/{print $NF}')

或者

xwininfo -id $(xdpyinfo | grep focus | grep -E -o 0x[0-9a-f]+)

只需解析您需要的 co-ordinates 的输出即可。以下是与窗口交互时一些有用的命令:

  • xwininfo 将为您提供相对和绝对几何形状。

  • xprop 会告诉你很多信息,包括窗口是否处于活动状态,但不是它的几何形状

  • xdpyinfo 也会为您提供活动窗口的 ID,但没有额外的信息。

  • wmctrl 将为您提供有关窗口的信息列表,并允许您选择要修改的活动窗口,但不是信息。


例如,将活动窗口的标题更改为 “New Name”:

wmctrl -r :ACTIVE: -N "New Name"

或者更改活动窗口的位置:

wmctrl -r :ACTIVE: -e 0,20,20,200,400

如果您只需要更改一些简单的内容(例如窗口的几何形状),请考虑 wmctrl。仅当您想做其他更复杂的事情时才考虑使用上面提到的其他脚本。

次佳办法

通过 “xdotool”,您可以使用键盘或鼠标事件轻松地与窗口交互。

Ctrl C 序列发送到活动窗口的示例:

xdotool getwindowfocus key ctrl+c # Sends CTRL+C to the current window.

如果您确实需要窗口位置:

eval $(xdotool getmouselocation --shell); echo $X $Y

有关更多操作/选项,请检查 man page

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/14065.html,未经允许,请勿转载。