Wie kann ich die Größe des aktiven Fensters mit wmctrl auf 50% ändern?

8

Ich möchte die Größe des Fensters in der linken Bildschirmhälfte ändern.

Eine Lösung, um dies zu erreichen, wäre, wmctrl zu verwenden und den richtigen Befehl an eine Tastenkombination zu binden .

Die Manpage zeigt jedoch nur, wie die Größe auf eine bestimmte Höhe und Breite geändert werden kann, zum Beispiel:

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

Dadurch wird das Fenster in die obere linke Ecke verschoben und die Größe auf 800 x 1040 Pixel geändert.

Aber seltsamerweise nur beim ersten Mal. Wenn Sie denselben Befehl erneut ausführen, bewegen Sie sich ganz rechts oben auf dem Bildschirm und ignorieren die obere Symbolleiste.

Es wäre auch schön, diesen Befehl mit einer Höhe von 100% und einer Breite von 50% anstelle der absoluten Werte zu haben.

rubo77
quelle

Antworten:

6

Ich habe die Antwort hier .

Dies wäre das Skript, um es auf die rechte Hälfte des Bildschirms zu maximieren :

#!/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

Um nach links zu gelangen, ändern Sie einfach die X-Linie in X=0. (Wenn Sie Ubuntu Unity verwenden, müssen Sie auch RIGHTMARGIN anpassen, das ich verwende. RIGHTMARGIN=102)

Durch das Definieren der rechten Ränder wird der Fehler behoben, der beim zweiten Aufruf ganz oben auf dem Bildschirm angezeigt wird, wobei die obere Symbolleiste ignoriert wird.

rubo77
quelle
Hier beschreibe ich, wie dieses Skript auf eine Tastaturkürzel gesetzt wird: Ist es möglich, Fenster mit Tastaturkürzeln in Xfce zu platzieren?
rubo77