Programmfenster
Fensterposition (funktioniert unter Xorg aber nicht
unter Wayland)
Die Ausführungen der
vorherigen Seiten über Programmfenster werden hier weitergeführt.
Generell gilt bei den weißen Textstellen auf dieser Seite: Man fügt die Zeichenfolge aus dem weißen Feld bei dem blinkenden Cursor des Terminals ein - dann drückt man die Eingabetaste. Oder man fügt die Zeichenfolge aus dem weißen Feld bei dem blinkenden Cursor des Editors ein. Dann drückt man zum Abspeichern gleichzeitig Strg und O dann drückt man die Eingabetaste um den Dateinamen zu bestätigen dann drückt man zum Verlassen des Editors gleichzeitig Strg und X. SuperLinks ist die Windows-Taste links unten zwischen Strg und Alt Hat man ein aktives Fenster so kann man mit den Tasten SuperLinks+PfeilRechts das Fenster auf die rechte Hälfte des Bildschirmes verschieben. Entsprechend kann man mit SuperLinks+PfeilLinks ein anderes Fenster auf die linke Hälfte des Bildschirmes verschieben. Man erreicht dadurch eine vertikale Zweiteilung des Bildschirmes. Man kann sich fragen wie es mit anderen Fensterpositionen aussieht. Dazu wird ein zenity-Fenster erzeugt auf dem man Positionen auswählen kann |
Bevor man dieses
zenity-Fenster aufruft muß man ein zu verschiebendes Fenster in den
Vordergrund holen, egal ob es bildschirmfüllend ist oder nicht, siehe
dazu: Mein Weg zu Debian unten. Der Cursor blinkt dann in dem ausgewählten Fenster. Dann drückt man die für das zenity-Fenster eingerichtete Tastenkombination Alt+W (W für Window). Es öffnet sich obiges zenity-Fenster indem man die Position auswählen kann. Nach Doppelklick auf die gewünschte Position wird das aktive Fenster an diese Position verschoben. Beispiele dazu |
Für das script braucht man das Programm wmctrl das eine genaue Positionierung der Fenster ermöglicht. Man startet Synaptic und sucht das Paket wmctrl und installiert dieses. Dann beendet man Synaptic. Es wurden im script Zeitpausen eingebaut damit das zenity-Fenster geschlossen werden kann (und nicht als aktives Fenster ausgewählt wird) und damit die erste Fenster-Operation ausgeführt werden kann bevor die zweite Fenster-Operation beginnt. Es kann sein daß Sie diese Zeitpausen vergrößern müssen (wenn die Fensterverschiebung nicht erfolgt). Das script wird hier in ~/Bla abgelegt aber Sie können Ihren Ordner für scripte benutzen. |
nano ~/Bla/FensterPOSITION.sh |
Eingabe in den Editor |
#!/bin/bash BBreit=$(xdpyinfo | grep 'dimensions' |tr -s ' ' | sed 's/ /#/g' | sed 's/x/#/g' | cut -f 3 -d '#') BHoch=$(xdpyinfo | grep 'dimensions' |tr -s ' ' | sed 's/ /#/g' | sed 's/x/#/g' | cut -f 4 -d '#') BBhalbe=$(echo $BBreit/2 | bc) BHhalbe=$(echo $BHoch/2 | bc) szZW=$(zenity --list --ok-label "Fenster ändern" --cancel-label "BEENDEN" --title "Fenster verschieben" --text "Auswahl" --hide-header --column "" "__OBEN__" "__UNTEN__" "OBEN LINKS____________" "____________OBEN RECHTS" "UNTEN LINKS____________" "____________UNTEN RECHTS" --width=180 --height=340 ) if [ $? -eq 1 ]; then exit fi if [ "$szZW" = "__OBEN__" ]; then sleep 0.5s ; wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz sleep 0.5s ; wmctrl -r :ACTIVE: -e 0,0,0,$BBreit,$BHhalbe elif [ "$szZW" = "__UNTEN__" ]; then sleep 0.5s ; wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz sleep 0.5s ; wmctrl -r :ACTIVE: -e 0,0,$BHhalbe,$BBreit,$BHhalbe elif [ "$szZW" = "OBEN LINKS____________" ]; then sleep 0.5s ; wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz sleep 0.5s ; wmctrl -r :ACTIVE: -e 0,0,0,$BBhalbe,$BHhalbe elif [ "$szZW" = "____________OBEN RECHTS" ]; then sleep 0.5s ; wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz sleep 0.5s ; wmctrl -r :ACTIVE: -e 0,$BBhalbe,0,$BBhalbe,$BHhalbe elif [ "$szZW" = "UNTEN LINKS____________" ]; then sleep 0.5s ; wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz sleep 0.5s ; wmctrl -r :ACTIVE: -e 0,0,$BHhalbe,$BBhalbe,$BHhalbe elif [ "$szZW" = "____________UNTEN RECHTS" ]; then sleep 0.5s ; wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz sleep 0.5s ; wmctrl -r :ACTIVE: -e 0,$BBhalbe,$BHhalbe,$BBhalbe,$BHhalbe fi |
Nun muß man die Datei ausführbar machen |
chmod +x ~/Bla/FensterPOSITION.sh |
Um damit gut arbeiten zu
können verwendet man zum
Starten dieses scriptes am besten eine Tastenkombination, vielleicht Alt+W Das Vorgehen der Zuordnung einer Tastenkombination ist beschrieben auf Debian Gnome Ordner Terminal Erläuterung zum script: Zunächst wird die Breite und Höhe des Bildschirmes in pixel bestimmt. Dazu kann man aufrufen |
xdpyinfo |
Nun werden damit sehr viele Informationen ausgegeben und es stellt sich die Frage wie man an das Gesuchte herankommt. Als erstes kann man die Ausgabe-Info auf eine Zeile reduzieren. Man braucht einen Suchbegriff der sonst in den vielen Informationen nicht vorkommt und verwendet grep um nach diesem Suchbegriff zu filtern |
xdpyinfo | grep 'dimensions' |
In der Ausgabe sind mehrfache Leerzeichen enthalten, die jetzt auf eines reduziert werden |
xdpyinfo | grep 'dimensions' | tr -s ' ' |
Nun werden mit sed die Leerzeichen und das Zeichen x durch ein sonst nicht vorkommendes Trennzeichen ersetzt |
xdpyinfo | grep 'dimensions' |tr -s ' ' | sed 's/ /#/g' | sed 's/x/#/g' |
Das Trennzeichen # zerlegt
diese Zeile in Felder die jetzt mit cut einzeln aufgerufen werden können.
Nachdem Breite und Höhe des Bildschirmes bestimmt wurden werden jeweils
die Hälfte davon berechnet. Wenn das aktive Fenster bildschirmfüllend ist, kann es nicht verschoben werden. Deshalb wird wmctrl zunächst aufgerufen um "bildschirmfüllend" zu entfernen. In einem zweiten Schritt wird das Fenster dann an die gewünschte Position verschoben. |