我正在尝试编写一个小脚本来帮助通过键盘快捷键管理我的窗口。
为了做我想做的事,我需要能够找到“活动”(聚焦)窗口的当前位置和大小。位置是指桌面上窗口的 X、Y 坐标,大小是指窗口的高度和宽度。
是否有可以获取此信息的命令行实用程序?
Mar*_*mo- 22
您可以使用以下命令获取当前活动窗口的所有信息:
xwininfo -id $(xprop -root | awk '/_NET_ACTIVE_WINDOW\(WINDOW\)/{print $NF}')
Run Code Online (Sandbox Code Playgroud)
或者
xwininfo -id $(xdpyinfo | grep focus | grep -E -o 0x[0-9a-f]+)
Run Code Online (Sandbox Code Playgroud)
只需解析您需要的坐标的输出。以下是与 Windows 交互时的一些有用命令:
例如,将活动窗口的标题更改为“新名称”:
wmctrl -r :ACTIVE: -N "New Name"
Run Code Online (Sandbox Code Playgroud)
或者改变活动窗口的位置:
wmctrl -r :ACTIVE: -e 0,20,20,200,400
Run Code Online (Sandbox Code Playgroud)
考虑wmctrl一下您是否只需要更改一些简单的东西,例如窗口的几何形状。仅当您想做其他更复杂的事情时,才考虑使用上面提到的其他脚本。
使用“xdotool”,您可以使用键盘或鼠标事件轻松地与窗口交互。
将CtrlC序列发送到活动窗口的示例:
xdotool getwindowfocus key ctrl+c # Sends CTRL+C to the current window.
Run Code Online (Sandbox Code Playgroud)
如果您确实需要窗口位置:
eval $(xdotool getmouselocation --shell); echo $X $Y
Run Code Online (Sandbox Code Playgroud)
有关更多操作/选项,请查看手册页。