在 Windows 上我有几个AutoHotkey 脚本它允许我按下各种组合键来将窗口调整为特定的预定义大小,或将它们移动到屏幕的某些区域(或两者兼而有之)。我想知道如何在 Ubuntu(gnome)中实现这一点。
我对 Linux 版 autohotkey 的大多数搜索似乎都集中在设置简单的键盘快捷键(组合键 X 启动应用程序 Y 等)。除了最大化/最小化之外,我没有看到任何有关脚本窗口大小和位置的信息。
答案1
在 shell 脚本中,您可以使用 wmctrl(Ubuntu 中默认未安装,但您可以使用包管理器安装它)来移动和调整窗口大小。
以下脚本将当前窗口的大小调整为屏幕宽度和高度的 90%:
#!/bin/sh
set -- $(xwininfo -root| awk -F '[ :]+' '/ (Width|Height):/ { print $3 }')
width=$1
height=$2
wmctrl -r :ACTIVE: -e 0,-1,-1,$((width*90/100)),$((height*90/100))
这也应该在 Xubuntu 中有效。
答案2
只是为了同意@Florian 的回答......
#!/bin/bash
$(xwininfo -root | awk -F ': +' '/ (Width|Height):/ { print $2 }')
width=$1
height=$2
wmctrl -r :ACTIVE: -e 0,-1,-1,$((width*90/100)),$((height*90/100))
为什么这样更好?
[ :]+
从字段分隔符变为: +
要求先使用冒号,然后使用空格,按此顺序,而不仅仅是使用一个或多个。
这意味着,当您想要使用包含空格的绝对左上角之类的东西时,它不再会中断。在@Florian 的回答中,awk 的Absolute upper-left X: 123
结果将是upper-left
,而不是123
。
为了进一步了解如何更好地扩展这一点;您可以采用上面的例子并执行以下操作......
set -- $(xwininfo -root | awk -F ': +' '/ (Absolute upper-left X|Absolute upper-left Y|Width|Height):/ { print $2 }')
posX=$1
posY=$2
width=$3
height=$4
wmctrl -r :ACTIVE: -e 0,$((posX+someNumX)),$((posY+someNumY)),$((width+someNumW)),$((height+someNumH))
将其移动<someNumX, someNumY>
并调整其大小<someNumW, someNumH>
。