Come usare lo snap alla finestra per Ubuntu? [duplicare]


14

Possibile duplicato:
Come emulare winkey + freccia Tasti di scelta rapida per massimizzare Windows 7?

Sto provando Ubuntu e voglio che le mie finestre scattino a destra e sinistra come Windows 7 quando uso i tasti di scelta rapida Tasto Windows + Freccia. Come posso fare questo?


Ubuntu utilizza Compiz per fornire effetti finestra. Ho guardato ma non riesco a vedere alcun plugin ufficiale per Compiz che ti darà quell'effetto Win 7 che è un peccato in quanto è una bella funzionalità della finestra. Continuerò a cercare e pubblicherò come risposta se trovo qualcosa.

Risposte:


18

Questo è facile da abilitare da Gestione impostazioni CompizConfig. (Installalo, se non l'hai già fatto).

Quindi in Gestione finestre, abilita Griglia. Ho mantenuto i collegamenti predefiniti di CTRL + ALT + NumPad ma puoi facilmente cambiarlo con Super + Arrow come preferisci.


L'unica cosa che mi manca è combinare azioni. Vale a dire che spostando la finestra verso destra e verso il basso si ottiene una finestra nell'angolo in basso a destra dello schermo (simile al comportamento di Windows).
Kleinfreund,

@kleinfreund se fai clic sul Gridpulsante accanto alla casella di controllo ci sono molte impostazioni che puoi modificare; la Corners / Edgesscheda consente di impostare l'attracco degli angoli.
swref

Questo non funziona su Pop OS 18.10, le scorciatoie da tastiera, non fanno nulla
Zach Bloomquist,

4

Vai qui per istruzioni complete in una forma leggibile dall'uomo Ubuntu di Mike, (grazie Mike) ed ecco il post originale del forum Ubuntu (grazie gotsanity). Ho controllato questo sul mio sistema, quindi dovrebbe funzionare per te. Ho anche aggiunto e modificato un po 'per cercare di renderlo un po' più facile da capire.

Le uniche modifiche che vorrei apportare alle sue indicazioni sono che per prima cosa controlla se hai installato compiz (il modo più semplice è usare il software manager e mettere "compiz" nella finestra di ricerca.

Se lo fai, digita quanto segue in un terminale: -

sudo apt-get install compizconfig-settings-manager wmctrl

Altrimenti il ​​gestore delle impostazioni di compiz non sarà presente sul tuo sistema.

Apri un terminale e digita:

xinput list

Verrà visualizzato un elenco. Trova il tuo numero ID per il mouse. Sarà necessario questo numero nei passaggi successivi. Il mio era 10. Il tuo molto probabilmente sarà diverso.
Questi comandi successivi creano una nuova cartella nascosta nella cartella principale per contenere gli script necessari e spostarti in essa.

mkdir .scripts

cd .scripts

Quindi digitare

gedit compizsnap-left.sh    

Apparirà un editor di testo. Incollalo e poi cambia l'ID del tuo mouse da 11 al numero dall'output del comando "xinput list". Al termine, salva il file.

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

Quindi, fai lo stesso per gli altri due script. (Senza dimenticare di cambiare l'ID del mouse)

compizsnap-right.sh

Codice:

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

E

compizsnap-max.sh

Codice:

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

(Ti sei ricordato di cambiare l'ID del mouse)

Ora dobbiamo dire a compiz come comportarsi quando il mouse si sposta a destra, in alto e a sinistra dello schermo.

Esegui Sistema> Preferenze> Gestione impostazioni CompizConfig. Vai alla sezione comandi. Impostare quanto segue:
Nel campo Comando 0:

sh ~/.scripts/compizsnap-left.sh

Nel campo Comando 1:

sh ~/.scripts/compizsnap-right.sh

Nel campo Comando 2:

sh ~/.scripts/compizsnap-max.sh

Infine, vai alla scheda Associazioni bordi e imposta il comando 0 a sinistra, imposta il comando 1 a destra e imposta il comando 2 in alto.

NB Compiz potrebbe lamentarsi del fatto che ci sono già funzioni impostate sui bordi che si desidera utilizzare - sostituirli con i propri.


funziona alla grande, qualche consiglio su come farlo funzionare con due monitor in configurazione TwinView?
Nathan Schwermann,

2

Una delle differenze tra la maggior parte dei gestori di finestre Unix e Windows è che la maggior parte dei gestori di finestre Unix offre resistenza al movimento delle finestre ai bordi dello schermo. Pertanto non è necessario alcun comando speciale per spostare le finestre sul bordo sinistro o destro dello schermo; basta trascinarne uno verso un bordo e si fermerà quando arriva lì. Non conosco alcuna scorciatoia da tastiera di Gnome (il gestore di finestre Ubuntu standard per ora) che sposta Windows.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.