在 Ubuntu 中创建键盘快捷键来移动/调整窗口大小

在 Ubuntu 中创建键盘快捷键来移动/调整窗口大小

在 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>

相关内容