Start GNU/Linux Aero Snap mit GNOME und Compiz (veraltet)

Aero Snap mit GNOME und Compiz (veraltet)

65

Windows 7 hat mit Aero Snap eine praktische Funktion hinzugewonnen. Greift man mit der Maus ein Fenster am Rahmen und zieht es an den linken bzw. rechten Rand des Desktops, dann wird es auf der rechten/linken Bildschirmhälfte maximiert. Zieht man es an den oberen Rand, dann wird das Fenster komplett maximiert. Unter Tricks und Tricks zum Fenstermanagement mit GNOME hatte ich ja schon geschrieben, wie man diese Funktionalität auch mit Ubuntu und dem Grid-Plugin aus Compiz nachahmen kann.

Allerdings benötigte man hierfür noch Tastenkombinationen, um die einzelnen Aktionen auszulösen. Wie die Jungs von OMG!UBUNTU! jedoch herausgefunden haben, könnt Ihr die Funktionalität von Aero Snap praktisch vollständig mit Compiz nachbilden. Dazu muss nicht außergewöhnlich viel Gefrickelt werden, Ubuntu bringt alles nötige von Haus aus mit.

Zuerst müsst ihr den CompizConfig Einstellungs-Manager und das Tool wmctrl installieren. Beides ist in den Paketquellen vorhanden und lässt sich via…

$ sudo apt-get install compizconfig-settings-manager wmctrl

… auf Euer System laden. Nun startet Ihr den CCSM über SystemEinstellungenCompizConfig Einstellungs-Manager und geht in das Plugin Commands. Aktiviert das Plugin [1] und tragt dort das Kommando…

WIDTH=`xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x'` && HALF=$(($WIDTH/2)) && wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,0,0,$HALF,-1

…in der ersten Zeile, den Befehl…

WIDTH=`xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x'` && HALF=$(($WIDTH/2)) && wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$HALF,0,$HALF,-1

…in der Zweiten und letztendlich das Kommando…

wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz

…in der Dritten Zeile ein [2].

Die entsprechenden Befehle im CompizConfig Einstellungs-Manager eintragen
Die entsprechenden Befehle im CompizConfig Einstellungs-Manager eintragen

Geht dann in die Lasche Edge Bindings des Command-Plugins und legt die Befehle auf die entsprechenden Kanten des Bildschirms. Lasst Euch durch den Vertipper im Dialog nicht verwirren. Mit Befehl 12 ausführen ist der Befehl 2 gemeint…

...und mit den Kanten des Bildschirms verknüpfen
…und mit den Kanten des Bildschirms verknüpfen

Eventuell kollidieren die Einstellungen mit bereits von Euch getroffenen Einstellungen von Compiz. So braucht etwa der Würfel ebenfalls die Bildschirmkanten. Hier müsst Ihr Euch entscheiden, Aero Snap oder der Würfel 😉 Verlasst dann das Commands-Plugin und geht in die Allgemeinen Optionen. Es wäre unpraktisch, wenn Fenster sofort maximiert werden, sobald sich die Maus der Kante nähert. Daher solltet Ihr hier die Verzögerung der Rand-Aktionen erhöhen. Je nach Wunsch könnt Ihr hier einen Wert von rund 400ms einstellen.

Letzendlich nur noch die Verzögerung anpassen
Letzendlich nur noch die Verzögerung anpassen

Nun seid Ihr fertig. Nehmt ein Fenster und führt es zum rechten Rand, es sollte nun automatisch auf die rechte Bildschirmhälfte ausgedehnt werden. Zieht das Fenster wieder vom Rand weg und es ist wieder bei der alten Größe. Aero Snap, made by Compiz 🙂 Ein kleines Problem konnte ich entdecken… Compiz unterscheidet bei den Aktionen nicht, ob man gerade ein Fenster in der „Hand“ hat oder nicht. Compiz maximiert das aktuell aktive Fenster auch dann, wenn man einfach nur mit der Maus an den Bildschirmrand fährt und gar kein Fenster verschiebt. Aus diesem Grund sollte man die oben erwähnte Verzögerung nicht zu gering einstellen.

65 Kommentare
Inline Feedbacks
Zeige alle Kommentare
Martin

Nur zur Info: KDE 4.4 wird eine Aero Snap Implementierung erhalten, welche standardmäßig aktiviert ist.

matthias

Danke für deine Anleitung! Sehr schön geschrieben und hilfreich.
Ich habe die Befehle für das anpassen der Fenster auf halbe Bildschirmhälften an die Ecken unten Links geklammert, so kann ich meinen schönen Würfel behalten und kann trotzdem Aero Snap nutzen, auch wenns nicht genauso wie bei Win funktioniert, für mich eine sehr schöne Lösung, es geht ja auch nicht daran Windows genau nachzubilden, sondern eine sinnvolle und gut Funktion zu haben.

jens

Klasse Artikel! Danke

DeKa

Danke Chrissss,

wieder einmal eine Super Anleitung um enthaltene versteckte Funktionen zu aktivieren.
Drehe meinen Würfel mit der mittleren Maus-Taste (Drehrad).

Gruß DeKa

detru

cool, danke für den Artikel 🙂

detru

ach noch etwas wie macht man eigentlich einen Trackback in identi.ca? Hab das noch nie hinbekommen und bevor ich den Artikel jetzt wieder auf identi.ca schmeiß und keinen trackback bekomm wollt ich doch lieber mal fragen 😉

Oder geht das nicht?

detru

stimmt, hat funktioniert 🙂

blubb

Sehr unspektakuläre Funktion muss ich sagen, aber kaum hat sie Windows muss sie natürlich jedes System nachahmen. Bewirbt man minimale Neuerungen mit genügend Marketing Budget scheint es aber, dass ein patch für ein Betriebssystem auf einmal zu einer Erfolgreichen neuen Version mutiert.

me

Hi Chris,
danke für den wiedermal spitzenmäßigen Beitrag =)

kleine Info: Bei mir wollten die Befehle nicht, da hab ich die mal via Terminal ausführen lassen:

Ich musste das Paket wmctrl nachinstallieren, dann gings einwandtfrei.

Grüße

crudeOIL

Danke!

Georg

Super Anleitung, danke vielmals!

mkind

sehr geil chris, hab ich direkt ma getrackbackt. hoffe, das funzt 🙂

detru

> Sehr unspektakuläre Funktion muss ich sagen, aber kaum hat sie >Windows muss sie natürlich jedes System nachahmen. Bewirbt man >minimale Neuerungen mit genügend Marketing Budget scheint es >aber, dass ein patch für ein Betriebssystem auf einmal zu einer >Erfolgreichen neuen Version mutiert.

das hat damit nichts zu tuen. Diese Funktion ist einfach enorm genial. Es vereinfacht vieles. Ich muss oft Text tippen und dazu was im Web suchen, oder bspw. in einem Forum hilfe geben und in einer 2. FF instanz nach lösungen suchen (falls mir mal keine Einfällt).

Jedesmal die Fenster genau (oder annäherend) gleich groß zu positionieren ist enorm unschön…da ist das einfache an den Rand geziehe doch schon viel besser.

Das einzige was mich jetzt noch stört: Bei Windows ist das ganze noch etwas besser: Man zieht das aktive Fenster nach (bspw) links, das zuletzt aktive Fenster/alle anderen Fenster werden dann rechts optimal angeordnet.

Sowas müsste doch auch zu realisieren sein?!

Ich hab im settings manager ein „virtual grid“ entdeckt. Das tut im Prinzip genau das, aber es hat keine Möglichkeit das ganze per Maus-am-Rand Befehl durchzuführen.

Someone?

Tobias

Sehr lässig, vielen Dank.

Päde

Bei mir werden die Fenster leider nicht passenden nebeneinander angeordnet, sie überlappen mit ca 5 Pixel. Sieht sehr hässlich aus und darum nützt mir diese Funktion leider nichts.

detru

@Päde

wenn ich das ganze richtig verstehe, sollte das hier funktionieren.

1. Befehl:

WIDTH=`xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x'` && HALF=$(($WIDTH/2)-3) && wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,0,0,$HALF,-1

2. Befehl:

WIDTH=`xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x'` && HALF=$(($WIDTH/2)-3) && wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$HALF,0,$HALF,-1

ich weiß gerad nicht ob man in der „HALF“ Variablen auch Kommawerte speichern kann, ich denke mal nicht, daher -3. Damit sollte dann zwischen 2 Fenstern exakt 1 Pixel frei sein.

Was ich getan habe ist einfach nur die Breite des Fensters (was in der Variablen „HALF“ gespeichert wird, die sich durch die Breite des Bildschirms/2 berechnet) 3 Pixel abzuziehen (-3).

Gruß
detru

//Edit: Passende Tags gesetzt.

detru

sooo. Ich hab jetzt mal ein bisschen damit rumgespielt und so funktionierts jetzt:

1. Befehl (bzw. linke Seite):

WIDTH=`xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x'` && HALF=$((($WIDTH/2)-5)) && wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,0,0,$HALF,-1

mit der -5 (oder welche Zahl auch immer) reduziert man die breite des Fensters. Soweit kein problem…(3 Klammern sind btw. notwendig, nicht wie vormals geschrieben 2)

2. Befehl (bzw. rechte Seite):

WIDTH=`xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x'` && HALF=$((($WIDTH/2)+5)) && HALFWIDTH=$((($WIDTH/2)-5)) && wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$HALF,0,$HALFWIDTH,-1

bis ich verstanden hatte wie der funktioniert hats etwas gedauert: Man gibt mit $Half den „startpunkt“ vom Fenster an. Gesehen wird dieser vom linken Rand. „HALFWIDTH“ gibt die breite des Fensters an, dürfte soweit klar sein. Das gemeine: wmctrl „shrinkt“ das Fenster beidseitig, nicht einseitig. Daher muss man den Wert den man bei der breite abzieht zum „startpunkt“ dazuzählen.

und wie schon vermutet: kommawerte werden nicht akzeptiert.

achja, meine Auflösung ist btw.: 1920*1200, dafür ist das auch „optimiert“.

//Edit: Passende Tags gesetzt.

detru

@Christoph Langner danke…war gedanklich auf ubuntuusers 😉

Kambo

also der Mittelklick oder Rechtsklick auf das Maximieren Symbol reicht mir eigentlich

detru

was mir gestern noch aufgefallen ist: Wenn ich kein Fenster offen habe und an den rechten Bildschirmrand gehe, dann wird die linke Seite meines Desktops (Hintergrundbild + Icons) nochmal auf die rechte Seite gepackt.

Ich kann heut Abend mal nen Screenshot hochladen.

detru

hier der Screenshot (maus war am rechten Rand des Bildschirms)

http://img81.imageshack.us/img81/8594/bildschirmfotof.png

detru

> sieht komisch aus, kann ich auch bei mir nicht nachvollziehen

das wollte ich nur wissen 😉

es ist nicht schlimm, aber war halt irgendwie strange^^

seaman

Hallo,

kann man denn Aero Snap auch schon in KDE 4.3.x aktivieren? Oder geht das wirklich erst mit KDE 4.4?

Danke.

seaman

Ah, ok. Danke dir.

Aber dieses „standardmäßig“ ließe mich mutmaßen, dass es jetzt schon geht, es aber unter Umständen noch nicht ausgereift ist.

Aber ok, dann warte ich noch bis Januar/Februar, wenn KDE 4.4 erscheint.

haan

Avoid annoying overlapping windows

Execute the following script to generate wmctrl commands for GNOME and/or KDE for your resolution (without annoying overlapping windows). See the script itself for more info.

The script is also available at:
http://ubuntuforums.org/showthread.php?p=8441295#post8441295
grid.sh:

 #!/bin/bash echo "" echo "Ubuntu (GNOME) contains a nice utility Compiz Grid:" echo "Tile, position and resize your windows to fit an imaginary grid." echo "The functionality is based on Winsplit Revolution for Microsoft Windows." echo "For more info, demos etc. see: http://winsplit-revolution.com" echo "" echo "This script can be used to define wmctrl commands for Kubuntu (KDE)" echo "for your monitor resolution. These commands can be attached to" echo "Key Bindings (keyboard shortcuts), so you have the same functionality" echo "under KDE without the need to install a Tiling Window Manager like" echo "xmonad, awesome or ion3." echo "" echo "The commands can also be used to emulate Windows 7 Aero Snap" echo "without annoying overlapping windows." echo "For more info about this subject see youtube or for example" echo "http://www.omgubuntu.co.uk/2009/11/aero-snap-ubuntu-linux.html" echo "" echo "NOTES:" echo "- This scipt uses xwininfo (part of x11-utils package) and wmctrl." echo " For (K)ubuntu:" echo " sudo apt-get install x11-utils wmctrl" echo "- This script is tested with:" echo " Ubuntu 9.10 (resolution 1920x1200)" echo " Kubuntu 9.10 (resolution 1920x1200)" echo " Kubuntu 8.10 (resolution 1600x1200)" # define maximum size of usable screen wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz sleep 1 WIDTH=$((`xwininfo -id $WINDOWID | grep 'Width:' | cut -f 2 -d ':'`)) HEIGHT=$((`xwininfo -id $WINDOWID | grep 'Height:' | cut -f 2 -d ':'`)) BORDERY=$((`xwininfo -id $WINDOWID | grep 'Corners:' | cut -f 11 -d ' ' | cut -f 2 -d '-'`)) wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz; sleep 1 wmctrl -r :ACTIVE: -e 0,0,0,$WIDTH,$HEIGHT sleep 1 BORDER=$((`xwininfo -id $WINDOWID | grep 'Absolute upper-left X:' | cut -f 2 -d ':'`)) BOTTOM=$((`xwininfo -id $WINDOWID | grep 'Corners:' | cut -f 11 -d ' ' | cut -f 2 -d '-'`)) BORDERY=$(($BORDERY-(`xwininfo -id $WINDOWID | grep 'Corners:' | cut -f 11 -d ' ' | cut -f 2 -d '-'`))) TOP=$((`xwininfo -id $WINDOWID | grep 'Relative upper-left Y:' | cut -f 2 -d ':'`)) if [ $TOP -eq 0 ] then #KDE echo "" echo "----------------------" echo "Assuming KDE, Correct?" echo "----------------------" WIDTH=$(((`xwininfo -id $WINDOWID | grep 'Width:' | cut -f 2 -d ':'`)-2*$BORDER)) HEIGHT=$(((`xwininfo -id $WINDOWID | grep 'Height:' | cut -f 2 -d ':'`)-2*$BORDERY)) TITLE=$((`xwininfo -id $WINDOWID | grep 'Absolute upper-left Y:' | cut -f 2 -d ':'`)) echo "" echo "Below are the wmctrl commands for KDE (Kubuntu)." echo "" echo "The Key Bindings (keyboard shortcuts) can be set in the following way:" echo "sudo apt-get install xbindkeys xbindkeys-config" echo "xbindkeys --defaults > ~/.xbindkeysrc" echo "echo \"xbindkeys\" > ~/.kde/Autostart/startxbindkeys.sh" echo "chmod u+x ~/.kde/Autostart/startxbindkeys.sh" echo "~/.kde/Autostart/startxbindkeys.sh" echo "xbindkeys-config" echo "finally add the commands below" echo "" echo "Centre Control+Alt+KP_Begin:" echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,0,0,$WIDTH,$HEIGHT" echo "" echo "Left Control+Alt+KP_Left:" echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,0,0,$(($WIDTH/2-$BORDER)),$HEIGHT" echo "" echo "Right Control+Alt+KP_Right:" echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,$(($WIDTH/2+($BORDER))),0,$(($WIDTH/2-$BORDER)),$HEIGHT" echo "" echo "Top Control+Alt+KP_Up:" echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,0,0,$WIDTH,$(($HEIGHT/2-($TITLE/2+$BORDERY)))" echo "" echo "Bottom Control+Alt+KP_Down:" echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,0,$(($TITLE+$BORDERY+$TOP+($HEIGHT/2-($TITLE/2+$BORDERY)))),$WIDTH,$(($HEIGHT/2-($TITLE/2+$BORDERY)))" echo "" echo "Top Left Control+Alt+KP_Home:" echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,0,0,$(($WIDTH/2-$BORDER)),$(($HEIGHT/2-($TITLE/2+$BORDERY)))" echo "" echo "Top Right Control+Alt+KP_Prior:" echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,$(($WIDTH/2+($BORDER))),0,$(($WIDTH/2-$BORDER)),$(($HEIGHT/2-($TITLE/2+$BORDERY)))" echo "" echo "Bottom Left Control+Alt+KP_End:" echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,0,$(($TITLE+$BORDERY+$TOP+($HEIGHT/2-($TITLE/2+$BORDERY)))),$(($WIDTH/2-$BORDER)),$(($HEIGHT/2-($TITLE/2+$BORDERY)))" echo "" echo "Bottum Right Control+Alt+KP_Next:" echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,$(($WIDTH/2+($BORDER))),$(($TITLE+$BORDERY+$TOP+($HEIGHT/2-($TITLE/2+$BORDERY)))),$(($WIDTH/2-$BORDER)),$(($HEIGHT/2-($TITLE/2+$BORDERY)))" else #GNOME echo "" echo "------------------------" echo "Assuming GNOME, Correct?" echo "------------------------" WIDTH=$((`xwininfo -id $WINDOWID | grep 'Width:' | cut -f 2 -d ':'`)) HEIGHT=$((`xwininfo -id $WINDOWID | grep 'Height:' | cut -f 2 -d ':'`)) wmctrl -r :ACTIVE: -e 0,0,$TOP,$WIDTH,$(($HEIGHT-2*$BOTTOM)) sleep 1 TITLE=$(((`xwininfo -id $WINDOWID | grep 'Absolute upper-left Y:' | cut -f 2 -d ':'`)-$TOP-$BORDER)) TOP=$(($TOP-$TITLE)) echo "" echo "Below are the wmctrl commands for GNOME (Ubuntu)." echo "The Key Bindings (keyboard shortcuts)" echo "or Edge Bindings (like Aero Snap) can be set under:" echo "System -> Prefences -> CompizConfig Settings Manager ->" echo "Commands -> Commands/Key Bindings/Edge Bindings" echo "" echo "Centre KP_5:" #echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,$BORDER,$(($TITLE+$TOP)),$WIDTH,$HEIGHT" echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,0,0,$WIDTH,$HEIGHT" echo "" echo "Left KP_4:" #echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,$BORDER,$(($TITLE+$TOP)),$(($WIDTH/2-$BORDER)),$HEIGHT" echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,0,0,$(($WIDTH/2-$BORDER)),$HEIGHT" echo "" echo "Right KP_6:" #echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,$(($WIDTH/2+(2*$BORDER))),$(($TITLE+$TOP)),$(($WIDTH/2-$BORDER)),$HEIGHT" echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,$(($WIDTH/2+(2*$BORDER))),0,$(($WIDTH/2-$BORDER)),$HEIGHT" echo "" echo "Top KP_8:" #echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,$BORDER,$(($TITLE+$TOP)),$WIDTH,$(($HEIGHT/2-($TITLE/2+$BORDER)))" echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,0,0,$WIDTH,$(($HEIGHT/2-($TITLE/2+$BORDER)))" echo "" echo "Bottom KP_2:" #echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,$BORDER,$(((2*($TITLE+$BORDER))+$TOP+($HEIGHT/2-($TITLE/2+$BORDER)))),$WIDTH,$(($HEIGHT/2-($TITLE/2+$BORDER)))" echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,0,$(((2*($TITLE+$BORDER))+$TOP+($HEIGHT/2-($TITLE/2+$BORDER)))),$WIDTH,$(($HEIGHT/2-($TITLE/2+$BORDER)))" echo "" echo "Top Left KP_7:" #echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,$BORDER,$(($TITLE+$TOP)),$(($WIDTH/2-$BORDER)),$(($HEIGHT/2-($TITLE/2+$BORDER)))" echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,0,0,$(($WIDTH/2-$BORDER)),$(($HEIGHT/2-($TITLE/2+$BORDER)))" echo "" echo "Top Right KP_9:" #echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,$(($WIDTH/2+(2*$BORDER))),$(($TITLE+$TOP)),$(($WIDTH/2-$BORDER)),$(($HEIGHT/2-($TITLE/2+$BORDER)))" echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,$(($WIDTH/2+(2*$BORDER))),0,$(($WIDTH/2-$BORDER)),$(($HEIGHT/2-($TITLE/2+$BORDER)))" echo "" echo "Bottom Left KP_1:" #echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,$BORDER,$(((2*($TITLE+$BORDER))+$TOP+($HEIGHT/2-($TITLE/2+$BORDER)))),$(($WIDTH/2-$BORDER)),$(($HEIGHT/2-($TITLE/2+$BORDER)))" echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,0,$(((2*($TITLE+$BORDER))+$TOP+($HEIGHT/2-($TITLE/2+$BORDER)))),$(($WIDTH/2-$BORDER)),$(($HEIGHT/2-($TITLE/2+$BORDER)))" echo "" echo "Bottum Right KP_3:" #echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,$(($WIDTH/2+(2*$BORDER))),$(((2*($TITLE+$BORDER))+$TOP+($HEIGHT/2-($TITLE/2+$BORDER)))),$(($WIDTH/2-$BORDER)),$(($HEIGHT/2-($TITLE/2+$BORDER)))" echo "wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz;wmctrl -r :ACTIVE: -e 0,$(($WIDTH/2+(2*$BORDER))),$(((2*($TITLE+$BORDER))+$TOP+($HEIGHT/2-($TITLE/2+$BORDER)))),$(($WIDTH/2-$BORDER)),$(($HEIGHT/2-($TITLE/2+$BORDER)))" echo "" echo "TIP: For GNOME (Ubuntu) Key Bindings use Compiz Grid instead. Go to:" echo " System -> Prefences -> CompizConfig Settings Manager ->" echo " Window Management -> Grid" fi wmctrl -r :ACTIVE: -e 0,0,0,$WIDTH,$HEIGHT echo "" echo "Current used values:" echo "border: $BORDER pixels" if [ $TOP -eq 0 ] then #KDE echo "bordery: $BORDERY pixels" fi echo "width: $WIDTH pixels" echo "height: $HEIGHT pixels" echo "bottom: $BOTTOM pixels" echo "top: $TOP pixels" echo "title: $TITLE pixels" 
Tini

Super, super und nochmal super! Ich freu mich wie ein Schneekönig. Vielen Dank, die Funktion ist für mich eine ganz große Bereicherung.

Super Blog den du hast!

Peter

Super, klappt bei mir. Danke.

Peter

Habe die Funktion einige Stunden getestet und festgestellt, dass Sie nur funktioniert, wenn man kein Fenster unter dem zu skalierenden Fenster hat. Überlappen die Fenster nämlich, klappt die Funktion nicht mehr. Würde mich über abhelfende Tipps freuen.

ElTeh

Hm, Irgendwie funktionieren die Seiten nicht richtig, den Code habe ich 1:1 Kopiert eingefügt und an die Edge bindings eingepasst. Benutze Gnome, jemand eine Idee woran das liegt?

anubis

Die Umsetzung klappt super. Ich habe die Funktionen auf super+left, super+right, usw. gesetzt und nicht auf Edge Binding. Durch die Tastennutzung passiert es einem nicht ausversehen, dass die Größe der Fenster verändert werden.

Zusätzlich habe ich noch folgenden 4. Befehl hinzugefügt:

wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz

Dieser wird mittels super+down benutzt. Damit wird das Fenster wieder auf den ursprünglichen Zustand gebracht.

DesertF0x

Bei mir unter Lucid funktioniert irgendwie das wiederherstellen der alten Größe nicht… Wenn die den Befehl im Terminal ausführe geht es allerdings. Wenn der Befehl einmal im Terminal ausgeführt wurde funktioniert das wiederherstellen mit dem Terminal dann auch immer wieder.
Jemand eine Idee?

Kekz

Hallo,

super Anleitung. Leider funktionieren die Key Bindings bei mir nur, wenn ich die Maus ohne Fenster in die Ecken fahre. Ich verwende nun Key-Bindings.

Kekz

Welche Werte braucht man bei zwei Monitoren? Momentan springt das Fenster vom linken auf den rechten Monitor und umgekehrt 🙁

roemer2201


Kekz:

Welche Werte braucht man bei zwei Monitoren? Momentan springt das Fenster vom linken auf den rechten Monitor und umgekehrt

Das Width musst du statt durch 2 durch 4 teilen. Hatte bei mir jedoch zwei komische Nebeneffekte:
1. Das lässt sich nur auf dem Monitor teilen und von rechts nach links schieben, auf dem es ursprünglich war.
2. wenn man mit der Maus über den Fensterrahmen oben ‚hovert‘, dann wird das Fenster maximiert.

Vielleicht setze ich mich die Tage nochmal ran, um das zu ändern, das mit dem „durch 4“ war nur eine schnelle Idee.

thecasio

Hey,
erstmal eine Superanleitung, war genau das was ich gesucht hab. Das lief bei mir problemlos ca. 3 Tage. Und ab heute hab ich das gleiche Problem wie es detru vor ca. 9 Monaten schon geäußert hat. Das löschen von .gconf/apps/compiz hat leider nichts gebracht. Hab das ganze mal näher im hackerboard beschrieben. http://www.hackerboard.de/linux-unix/42185-geteilter-bildschirm.html

Danke schon mal wenn hier wer eine Ahnung hat wie ich meinen PC wieder zum funktionieren bringe!
Gruß

sunchase

Hallo,
besten Dank für die Anleitung. Funktioniert unter Ubuntu 10.04 super, unter Debian squeeze leider nicht. Wenn ich die Kommandos manuell in der shell ausführe, funktioniert alles. Sobald ich die Fenster aber an den Rand des Bildschirms ziehe, passiert leider gar nichts. Jemand eine Idee wie ich AeroSnap auch unter Debian zum Laufen bekomme?

Lastcoder

Fahre zwar auch Ubuntu 10.04, allerdings mit aktuellstem Compiz via PPA. Funktioniert bei mir überhaupt nicht, sprich alles wie bisher, keine erkennbare Reaktion ….

Lastcoder

oops … sudo apt-get install wmctrl .. *lol* mein Fehler, jetzt läuft’s, wenn auch nicht ganz so smooth wie unter win7, aber brauchbar. Ich finde die Funktion im Übrigen auch sehr geil, gerade bei der Arbeit mit zwei Dokumenten …

Lastcoder

habe zunächst auf Edge-Binding Top-Left
umgestellt, nachdem mir gnomenu immer
in der Position verrutscht ist, wenn ich mal kurz
links hingekommen bin.

Mir scheint „Button Bindings“ praktikabel
zu sein, da man dort scheinbar Edge-Binding
mit einer Taste verknüpfen kann ?!?!

thorstenmz

Bei mir funktioniert es leider nicht.

Wenn ich die Zeile in der bash eingebe, erhalte ich folgende Fehlermeldung:

bash: /2: Syntax Fehler: Operator erwartet. (Fehlerverursachendes Zeichen ist \“/2\“).

Offenbar kriegt er die Division nicht hin.

Piccolino81

Super Anleitung, wie immer! Allerdings musste ich das ganze auf Tastaturkombinationen (CTRL+ALT+RIGHT/LEFT/UP) legen. Es passierte einfach zu oft, dass ich aus Versehen ein Fenster nach links, rechts verschoben oder maximiert habe. Danke für die detaillierte Beschreibung.

MaTo

Hallo,

Super Anleitung!!! Funktioniert alles so weit, bis auf Evolution… Der lässt sich bei mir nicht auf die Hälfte des Bildschirms minimieren. Zumindest nicht Bei meim 14 Zoller…

LG

roemer2201

Ist es bei Euch auch so, dass ein nicht maximiertes Fenster sich maximiert, wenn ihr mit der Maus an den oberen Bildschirm kommt, OHNE den Fensterrahmen gegriffen zu haben?

roemer2201

Das freut mich zu hören, dass man für einen doch so alten Artikel noch Support bekommt. 🙂

ElTeh

Jop, das liegt wohl daran, dass das Fenster angeklickt und damit im Fokus ist, denke ich.