ubuntuusers.de

Fenster zusammen "Resizen"

Status: Ungelöst | Ubuntu-Version: Xubuntu 24.04 (Noble Numbat)
Antworten |

PcDoc2000

Avatar von PcDoc2000

Anmeldungsdatum:
4. Februar 2010

Beiträge: 916

Wohnort: Wien

Hallo,

Eine Sache die mir bei XFCE etwas abgeht ist, dass wenn man Fenster aneinander docked, oder an die Bildschirmränder zieht, dann kann man unter Windows, oder auch bei KDE die Fenster am Fensterrand in der Größe verändern und es werden automatisch alle 2 oder mehr Fenster mit angepasst. Ich hoffe es ist klar was ich meine!?

Gibt es irgendein Plugin oder eine Einstellung bei XFCE die das auch ermöglicht? Aktuell muss man immer jedes Fenster einzeln in der Größe anpassen. Geht auch, wäre aber ein Komfortgewinn wenn sich das machen ließe, da ich das doch öfters mache.

P.s.: Und nein, nur deshalb wechsel ich nicht auf KDE! 😉

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1446

Ich hoffe es ist klar was ich meine!?

Nein, mir nicht. Was ich aber lese ist, dass du Fenster positionieren und in der Größe verändern willst. Hierzu fällt mir das Tool "xdotool" ein (->windowsize und ->windowmove), mit dem du das machen kannst.

Für einfache Fenster-Anpassungen kannst du auch die Pfeiltasten verwenden (z.B. Super+Links um das Fenster links zu kacheln).

PcDoc2000

(Themenstarter)
Avatar von PcDoc2000

Anmeldungsdatum:
4. Februar 2010

Beiträge: 916

Wohnort: Wien

Ich versuche es nochmal zu beschreiben um was es mir geht. Vielleicht mit einem einfachen Beispiel:

Wenn man ein Fenster mit Super+links und ein anderes mit Super+rechts ausrichtet, dann treffen die sich in der Mitte. Bei zB KDE kann ich jetzt an dem Fensterrand an dem sich die beiden Fenster treffen auf einmal beide Fenster gleichzeitig auf horizontaler Ebene vergrößen/verkleinern. Sprich ich schiebe den Split herum.

Bei XFCE muss man das für jedes Fenster getrennt machen. Z.B. den linken Fensterrand vom recht Fenster etwas weiter nach rechts ziehen. Das gleiche muss man mit dem rechten Rand vom Linken Fenster machen, damit sich die Fenster wieder "berühren".

Edit: Das ist mir sehr hoher Wahrscheinlichkeit nichts was man in den normalen Einstellungen ändern kann, sondern wenn das überhaupt möglich ist, muss das über die Config Dateien oder ein Plugin gehen.

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1446

Na gut, auch wenn ich nicht verstehe, warum man so was braucht, habe ich mal ein Beispiel als Script beigefügt, das das macht, was ich denke, das dies deiner Vorstellung entspricht. Ich habe dies nicht als "Einzeiler" sondern mit vielen Befehlszeilen und Kommentaren versehen, damit du den Vorschlag nach deinen Bedürfnissen anpassen kannst.

#!/bin/bash

# Voraussetzung zwei Fenster sind mittels "Super+Links" und "Super+Rechts" positioniert
# Der neue Berührungspunkt der beiden Fenster ist dort (X), wo sich die Maus befindet,
# wenn die Funktions-Taste (z.B. Super+B)  gedrückt wird.

# Ermittle das Window, in dem sich die Maus befindet
eval $(xdotool getmouselocation --shell)
# Merke die Maus-Position
xMaus=$X
yMaus=$Y
# Ermittle die Fenstergröße des WINDOW
eval $(xdotool getwindowgeometry --shell $WINDOW)
# Wenn die Fensterposition x<=0 ist, handelt ist es das linke Fenster, sonst das rechte
[ $X -le 0 ] && lr="WL" || lr="WR"

# Merke dieses Fenster als W1
W1=$WINDOW
P1=$lr
WID1=$WIDTH
HIG1=$HEIGHT
X1=$X
Y1=$Y

# Wenn lr=WL, positioniere auf $((X1+WID1+100)), 
# wenn lr=WR, positioniere auf 100 um das zweite Fenster zu lesen
if [ $lr == "WL" ]; then
 xdotool mousemove $((X1+WID1+100)) $yMaus
else
 xdotool mousemove 100 $yMaus
fi
eval $(xdotool getmouselocation --shell)
eval $(xdotool getwindowgeometry --shell $WINDOW)
W2=$WINDOW

#exec 1<>/tmp/xxx

#echo "Mausposition: $xMaus $yMaus"

if [ "$lr" == "WL" ]; then
 #echo "LINKS"
 #echo "LINKS:  $W1, $X1, $Y1, $WID1, $HIG1"
 #echo "RECHTS: $W2, $X, $Y, $WIDTH, $HEIGHT"
 #echo xdotool windowsize $W1 $xMaus $Y1
 #echo xdotool windowmove $W2 $xMaus $Y
 #echo xdotool windowsize $W2 $((WIDTH+$WID1-xMaus)) $HEIGHT
 
 xdotool windowsize $W1 $xMaus $Y1
 xdotool windowmove $W2 $xMaus $Y
 xdotool windowsize $W2 $((WIDTH+$WID1-xMaus)) $HEIGHT
else
 #echo "RECHTS"
 #echo "LINKS:  $W2, $X, $Y, $WIDTH, $HEIGHT"
 #echo "RECHTS: $W1, $X1, $Y1, $WID1, $HIG1"
 #echo xdotool windowsize $W2 $xMaus $Y
 #echo xdotool windowmove $W1 $xMaus $Y1
 #echo xdotool windowsize $W1 $((WIDTH+$WID1-xMaus)) $HEIGHT

 xdotool windowsize $W2 $xMaus $Y
 xdotool windowmove $W1 $xMaus $Y1
 xdotool windowsize $W1 $((WIDTH+$WID1-xMaus)) $HEIGHT
fi

# Positioniere die Maus auf die Stelle, als die Funktionstaste gedrückt wurde
xdotool mousemove $xMaus $yMaus

Bedienung: Es werden zwei Fenster mittels "Super+Links" und "Super+Rechts" auf dem Bildschirm angezeigt. Man bewegt die Maus an die Position, an der sich die beiden Fenster berühren sollen. Dann drückt man die Tastenkombination "Super+B".

Die Taste "Super+B" definiert man über die "Einstellungen" → "Tastatur" → "Tastenkürzel für Anwendungen" → "+ Hinzufügen". Wenn man das Script als "$HOME/Downloads/mm.sh" abgespeichert und exekutierbar (chmod 755) gemacht hat, trägt man in der Eingabeform (Tastenkürzelbefehl) den Befehl 'bash -c "$HOME/Downloads/mm.sh"' ein und definiert die Tastenkombination "Super+B" als Kürzel.

Ja, das Script lässt sich mächtig eindampfen aber ich hoffe, das es so für Änderungen leichter verständlich ist.

PcDoc2000

(Themenstarter)
Avatar von PcDoc2000

Anmeldungsdatum:
4. Februar 2010

Beiträge: 916

Wohnort: Wien

Danke, dass du dir die Arbeit gemacht hast!! Abgesehen davon, dass ein zusätzlicher Input über das Keyboard nötig ist was nicht optimal ist, so richtig funktioniert das nicht bzw. macht es nicht das was ich mir vorstelle. Das verschiebt eher das Fenster anstatt den Split zu verschieben.

Hier mal 2 Beispiele mit 2 bzw. 3 Fenster. Jeweils das Ausgangsbild (a) und das erwünschte Resultat (b) (das muss natürlich stufenlos verschiebbar sein, sonst macht das keinen Sinn)

Bilder

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1446

... so richtig funktioniert das nicht bzw. macht es nicht das was ich mir vorstelle.

Ich hatte nicht vor, für dich eine Lösung zu erstellen sondern wollte nur die prinzipielle Vorgehensweise mit "xdotool" skizzieren.

Hier mal 2 Beispiele mit 2 bzw. 3 Fenster.

Eine Lösung mit 3 Fenstern hatte ich auch nicht vorgesehen.

Meine Intention war es, das du so eine Aufgabe selbst löst und ich einen kleinen Anschub dafür gebe.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11300

Wohnort: München

PcDoc2000 schrieb:

Edit: Das ist mir sehr hoher Wahrscheinlichkeit nichts was man in den normalen Einstellungen ändern kann, sondern wenn das überhaupt möglich ist, muss das über die Config Dateien oder ein Plugin gehen.

Es gibt da diverse Ansätze, um Tiling mit XFCE zu verbessern (vgl. https://forum.xfce.org/viewtopic.php?pid=73939#p73939), jaywilkas/xpytile ist einer davon.

schwarzheit Team-Icon

Supporter
Avatar von schwarzheit

Anmeldungsdatum:
31. Dezember 2007

Beiträge: 7758

Bin ich grad drüber gestolpert. Testen musste aber selber.

https://github.com/jaywilkas/xpytile/

Ups der Link wurde dir ja schon gegeben.

PcDoc2000

(Themenstarter)
Avatar von PcDoc2000

Anmeldungsdatum:
4. Februar 2010

Beiträge: 916

Wohnort: Wien

ja, da bin ich gerade etwas am herum probieren, aber bis jetzt noch ohne Erfolg. XPYtile klingt vielversprechend, aber bis jetzt habe ich es nicht wirklich zum Laufen bekommen.

Es soll unter anderem python-xlib installiert werden, wobei ich das aus den normalen Repos nicht installieren konnte.

Ruth-Wies

Avatar von Ruth-Wies

Anmeldungsdatum:
12. April 2023

Beiträge: 872

Wohnort: im Exil ;(

PcDoc2000 schrieb:

… wobei ich das aus den normalen Repos nicht installieren konnte.

Falsches Werkzeug?

apt search python-xlib

PcDoc2000

(Themenstarter)
Avatar von PcDoc2000

Anmeldungsdatum:
4. Februar 2010

Beiträge: 916

Wohnort: Wien

Richtiges Werkzeug, aber falsches Paket! 😉 Ich hab inzwischen vermutlich das richtige Paket gefunden. "python3-xlib" gibt es!

juribel

Anmeldungsdatum:
20. April 2014

Beiträge: 1319

Unter Xfce: Fenster verschieben mit [Alt] + Ziehen mit linker Maustaste. Grösse ändern mit [Alt] + Ziehen mit rechter Maustaste. Bequem und intuitiv.

PcDoc2000

(Themenstarter)
Avatar von PcDoc2000

Anmeldungsdatum:
4. Februar 2010

Beiträge: 916

Wohnort: Wien

ja, das ist wie ich es aktuell mache. Muss aber trotzdem für beide Fenster separat gemacht werden. Funktioniert übrigens nicht nur unter XFCE sondern auch in KDE.

Antworten |