Keyboard-Shortcuts

如何使用 wmctrl 將活動視窗的大小調整為 50%?

  • February 19, 2018

我想將視窗大小調整到螢幕的左半部分。

實現這一目標的解決方案是使用wmctrl並將正確的命令綁定到鍵盤快捷鍵。

但是手冊頁只顯示瞭如何調整到一定的高度和寬度,例如:

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

將視窗移動到左上角並將大小調整為 800x1040 像素。

但奇怪的是只有第一次。如果再次執行相同的命令,in 會移動到螢幕右上角,忽略頂部工具欄。

同樣,如果該命令的高度為 100%,寬度為 50%,而不是絕對值,那就太好了。

我在這裡得到了答案。

這將是將其最大化到螢幕右半部分的腳本:

#!/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-Line 更改為X=0。(如果你使用 Ubuntu Unity,你也需要適應我使用的 RIGHTMARGIN RIGHTMARGIN=102

定義右邊距可以解決錯誤,即第二次呼叫它時,它會移動到螢幕的最頂部,而忽略頂部工具欄。

引用自:https://unix.stackexchange.com/questions/53150