如何使用 wmctrl 将活动窗口大小调整为 50%?

如何使用 wmctrl 将活动窗口大小调整为 50%?

我想将窗口大小调整到屏幕的左半部分。

实现这一目标的解决方案是使用控制面板并将正确的命令绑定到键盘快捷键。

但是联机帮助页仅显示如何调整大小到一定的高度和宽度,例如:

wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -e 0,0,0,800,1040

将窗口移动到左上角并将大小调整为 800x1040 像素。

但奇怪的是这只是第一次。如果再次执行相同的命令,则 in 移动到非常屏幕右上角,忽略顶部工具栏。

另外,如果该命令的高度为 100%,宽度为 50%,而不是绝对值,那就太好了。

答案1

我得到了答案这里

这将是最大化它的脚本屏幕的右半部分:

#!/bin/bash
# resizes the window to full height and 50% width and moves into upper right corner

#define the height in px of the top system-bar:
TOPMARGIN=27

#sum in px of all horizontal borders:
RIGHTMARGIN=10

# get width of screen and height of screen
SCREEN_WIDTH=$(xwininfo -root | awk '$1=="Width:" {print $2}')
SCREEN_HEIGHT=$(xwininfo -root | awk '$1=="Height:" {print $2}')

# new width and height
W=$(( $SCREEN_WIDTH / 2 - $RIGHTMARGIN ))
H=$(( $SCREEN_HEIGHT - 2 * $TOPMARGIN ))

# X, change to move left or right:

# moving to the right half of the screen:
X=$(( $SCREEN_WIDTH / 2 ))
# moving to the left:
#X=0; 

Y=$TOPMARGIN

wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -e 0,$X,$Y,$W,$H

要向左移动,只需将 X 线更改为X=0。 (如果你使用Ubuntu Unity,你也需要适配RIGHTMARGIN,我使用的是RIGHTMARGIN=102

定义右边距这解决了这个错误,第二次调用它时,它移动到屏幕的最顶部,忽略顶部工具栏。

答案2

您可以使用兰德尔获取(或设置)屏幕分辨率,然后使用控制面板调整窗口大小。

相关内容