Gnome3 Classic e Window Snap

3

Existe alguma maneira de ativar o Windows Snap no Gnome3 Classic? Eu tenho usado o KDE4 e ele está fora da caixa. No momento estou testando o Kali Llinux e estou tentando fazer com que funcione.

Eu quero um ambiente leve e preciso apenas de fotografar. Alguma idéia, além de construir o próprio Kali com o KDE ou usar o compiz?

    
por Simon 21.03.2013 / 11:00

1 resposta

3

Eu não acho que você pode ativar o snap sem composição (Gnome3 classic). Ele sai da caixa em Gnome3 completo (eu acho) e definitivamente faz com canela. De qualquer forma, eu escrevi um script que essencialmente faz a mesma coisa.

Ele não funcionará automaticamente, ou seja, ele não será ativado apenas arrastando uma janela até a borda da tela, mas você poderá atribuir atalhos a ele. Por exemplo, Ctrl + R para encaixar no lado direito, etc.

O script requer disper , xdpyinfo e wmctrl , todos os quais devem estar facilmente disponíveis e são nos repos debian (que o kali usa). Se você salvar o script como snap_windows.sh , poderá usá-lo da seguinte maneira:

  • snap_windows.sh maximizará / desimputará a janela atual.
  • snap_windows.sh l irá ajustar a janela atual para o lado esquerdo da tela
  • snap_windows.sh r irá ajustar a janela atual para o lado direito da tela

Se você estiver usando duas telas, ela sempre se encaixará no lado esquerdo / direito da tela do lado direito. Não é perfeito e eu não o usei desde que mudei para o Cinnammon, então me avise se você tiver problemas com ele.

Aqui está o script:

#!/bin/bash

## If no side has been given, toggle maximizing the current window and exit
if [ ! $1 ]
then
    wmctrl -r :ACTIVE: -b toggle,maximized_vert,maximized_horz
    exit
fi

## If a side has been given, continue
side=$1;
## How many screens are there?
screens='disper -l | grep -c display'
## Get screen dimensions
WIDTH='xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x'';
HALF=$(($WIDTH/2));

## If we are running on one screen, snap to edge of screen
if [ $screens == '1' ]
then
    ## Snap to the left hand side
    if [ $side == 'l' ]
    then
        ## wmctrl format: gravity,posx,posy,width,height
        wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,0,0,$HALF,-1
    ## Snap to the right hand side
    else
        wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$HALF,0,$HALF,-1 
    fi
## If we are running on two screens, snap to edge of right hand screen
## I use 1600 because I know it is the size of my laptop display
## and that it is not the same as that of my 2nd monitor.
else
    LAPTOP=1600; ## Change this as approrpiate for your setup.
    let "WIDTH-=LAPTOP";
    SCREEN=$LAPTOP;
    HALF=$(($WIDTH/2));
    if [ $side == 'l' ]
    then
        wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$LAPTOP,0,$HALF,-1
    else
    let "SCREEN += HALF+2";
        wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$SCREEN,0,$HALF,-1;
    fi
fi
    
por 21.03.2013 / 13:33