Wie benutze ich Windows Snapping für Ubuntu? [Duplikat]

14

Mögliches Duplizieren:
Wie emuliert man die maximierten Tastenkombinationen von winkey + arrow für Windows 7?

Ich versuche es mit Ubuntu und möchte, dass meine Fenster wie bei Windows 7 nach links und rechts ausgerichtet werden, wenn ich die Tastenkombinationen Fenstertaste + Pfeil verwende. Wie kann ich das machen?

Doug
quelle
Ubuntu verwendet Compiz, um Fenstereffekte bereitzustellen. Ich habe nachgesehen, kann aber kein offizielles Plugin für Compiz sehen, mit dem Sie den Win 7-Effekt erzielen können, was schade ist, da es ein schönes Fensterfeature ist. Ich werde weiter suchen und als Antwort posten, wenn ich etwas finde.

Antworten:

18

Dies ist einfach über den CompizConfig-Einstellungsmanager zu aktivieren. (Installieren Sie es, falls noch nicht geschehen).

Aktivieren Sie dann unter Fensterverwaltung die Option Raster. Ich habe die Standardbindungen von STRG + ALT + NumPad beibehalten, aber Sie können sie ganz einfach nach Belieben ändern.

bitslave
quelle
Das einzige, was mir fehlt, ist das Kombinieren von Aktionen. Wenn Sie also das Fenster nach rechts und unten bewegen, befindet sich das Fenster im unteren rechten Bereich des Bildschirms (ähnlich wie beim Fensterverhalten).
kleinfreund
@kleinfreund Wenn Sie auf die GridSchaltfläche neben dem Kontrollkästchen klicken, können Sie viele Einstellungen ändern. Auf dieser Corners / EdgesRegisterkarte können Sie das Andocken von Ecken einrichten.
SWREF
Dies funktioniert nicht unter Pop OS 18.10, den wichtigsten Tastenkombinationen, sie tun nichts
Zach Bloomquist
4

Gehen Sie hier für volle Anweisungen in einer für Menschen lesbaren Form von Mikes Ubuntu, (danke Mike) und hier ist das Original Ubuntu Forum Post (dank gotsanity). Ich habe dies auf meinem System überprüft, damit es für Sie funktionieren sollte. Ich habe auch ein wenig hinzugefügt und bearbeitet, um es ein bisschen verständlicher zu machen.

Die einzigen Änderungen, die ich an seinen Anweisungen vornehmen würde, sind, dass Sie zuerst überprüfen, ob Sie compiz installiert haben (der einfachste Weg ist, den Software-Manager zu verwenden und "compiz" in das Suchfenster zu setzen.

Wenn Sie dies tun, geben Sie Folgendes in ein Terminal ein: -

sudo apt-get install compizconfig-settings-manager wmctrl

Andernfalls ist der compiz settings manager auf Ihrem System nicht vorhanden.

Öffnen Sie ein Terminal und geben Sie Folgendes ein:

xinput list

Es wird eine Liste angezeigt. Finden Sie Ihre ID-Nummer für Ihre Maus. Diese Nummer benötigen Sie in den nächsten Schritten. Meins war 10. Ihr wird sehr wahrscheinlich anders sein.
Mit den folgenden Befehlen wird ein neuer versteckter Ordner in Ihrem Basisordner erstellt, in dem die erforderlichen Skripts gespeichert sind, und Sie werden in diesen Ordner verschoben.

mkdir .scripts

cd .scripts

Dann tippe

gedit compizsnap-left.sh    

Ein Texteditor wird geöffnet. Fügen Sie dies ein und ändern Sie dann Ihre Maus-ID von 11 in die Zahl aus der Ausgabe des Befehls "xinput list". Wenn Sie dies getan haben, speichern Sie die Datei.

#!/bin/sh
#
# CompizSnap is a collaborative project from ubuntuforums.org and is free software.
# This script adds window snapping functionality to compiz using the commands plugin.
#
# Directions: run "xinput list" to find your mouse's ID# and then edit the MOUSE variable below:
#

MOUSE="11"

# ----- Don't edit below this line unless you know what you are doing.
WIDTH=`xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x'` && HALF=$(($WIDTH/2-10))

echo $WIDTH
TEMPWIDTH=$(($WIDTH-10))
echo $TEMPWIDTH
if /usr/bin/X11/xinput --query-state $MOUSE | grep down
then
    while (/usr/bin/X11/xinput --query-state $MOUSE | grep down)
    do
        echo 'button pressed'
    done

    if [ "$(/usr/bin/X11/xinput --query-state $MOUSE | grep "valuator\[0\]=." | sed s/"valuator\[0\]="//)" -le 10 ]
    then

        wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,0,0,$HALF,-10

    else
        echo "exiting without matching"
        exit 1
    fi
else
        echo "exiting because button isnt "
        exit 1
fi    

Führen Sie dann dasselbe für die anderen beiden Skripte aus. (Nicht zu vergessen, die Maus-ID zu ändern)

compizsnap-right.sh

Code:

#!/bin/sh
#
# CompizSnap is a collaborative project from ubuntuforums.org and is free software.
# This script adds window snapping functionality to compiz using the commands plugin.
#
# Directions: run "xinput list" to find your mouse's ID# and then edit the MOUSE variable below:
#

MOUSE="11"

# ----- Don't edit below this line unless you know what you are doing.
WIDTH=`xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x'` && HALF=$(($WIDTH/2))

echo $WIDTH
TEMPWIDTH=$(($WIDTH-10))
echo $TEMPWIDTH
if /usr/bin/X11/xinput --query-state $MOUSE | grep down
then
    while (/usr/bin/X11/xinput --query-state $MOUSE | grep down)
    do
        echo 'button pressed'
    done

    if [ "$(/usr/bin/X11/xinput --query-state $MOUSE | grep "valuator\[0\]=." | sed s/"valuator\[0\]="//)" -ge $TEMPWIDTH ]
    then

        wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$HALF,0,$HALF,-1

    else
        echo "exiting without matching"
        exit 1
    fi
else
        echo "exiting because button isnt "
        exit 1
fi    

Und

compizsnap-max.sh

Code:

#!/bin/sh
#
# CompizSnap is a collaborative project from ubuntuforums.org and is free software.
# This script adds window snapping functionality to compiz using the commands plugin.
#
# Directions: run "xinput list" to find your mouse's ID# and then edit the MOUSE variable below:
#

MOUSE="11"

# ----- Don't edit below this line unless you know what you are doing.
if /usr/bin/X11/xinput --query-state $MOUSE | grep down
then
    while (/usr/bin/X11/xinput --query-state $MOUSE | grep down)
    do
        echo 'button pressed'
    done
    if [ "$(/usr/bin/X11/xinput --query-state $MOUSE | grep "valuator\[1\]=." | sed s/"valuator\[1\]="//)" -le 10 ]
    then

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

    else
        echo "exiting without matching"
        exit 1
    fi
else
        echo "exiting because button isnt "
        exit 1
fi    

(Haben Sie daran gedacht, die Maus-ID zu ändern)

Jetzt müssen wir compiz mitteilen, wie es sich verhalten soll, wenn sich die Maus nach rechts, oben und links auf dem Bildschirm bewegt.

Führen Sie System> Preferences> CompizConfig Settings Manager aus. Gehen Sie zum Befehlsbereich. Legen Sie Folgendes fest:
Im Feld Befehl 0:

sh ~/.scripts/compizsnap-left.sh

Im Feld Befehl 1:

sh ~/.scripts/compizsnap-right.sh

Im Feld Befehl 2:

sh ~/.scripts/compizsnap-max.sh

Wechseln Sie schließlich zur Registerkarte "Kantenbindungen" und setzen Sie den Befehl 0 auf "links", den Befehl 1 auf "rechts" und den Befehl 2 auf "oben".

NB Compiz kann sich darüber beschweren, dass bereits Funktionen für die Kantenbindungen festgelegt wurden, die Sie verwenden möchten. Ersetzen Sie diese durch Ihre.

Tog
quelle
Das funktioniert prima. Gibt es Tipps, wie man es mit zwei Monitoren in der TwinView-Konfiguration zum Laufen bringt?
Nathan Schwermann
2

Einer der Unterschiede zwischen den meisten Unix-Fenstermanagern und Windows besteht darin, dass die meisten Unix-Fenstermanager einen Widerstand gegen die Bewegung von Fenstern an den Bildschirmrändern bieten. Daher benötigen Sie keine speziellen Befehle, um Fenster an den linken oder rechten Bildschirmrand zu verschieben. Ziehen Sie einfach eine in Richtung einer Kante, und sie stoppt, wenn sie dort ankommt. Ich kenne keine Gnome-Tastaturkürzel (derzeit der Standard-Ubuntu-Fenstermanager), mit denen Fenster verschoben werden.

garyjohn
quelle