La commande réelle que vous voulez est quelque chose comme 
wmctrl -r :ACTIVE: -b add,maximized_vert && 
wmctrl -r :ACTIVE: -e 0,0,0,$HALF,-1
Cela fera que la fenêtre actuelle occupe la moitié de l'écran (changez $HALFles dimensions de votre écran) et s'accroche sur le côté gauche. Pour accrocher vers la droite, utilisez
wmctrl -r :ACTIVE: -b add,maximized_vert && 
wmctrl -r :ACTIVE: -e 0,$HALF,0,$HALF,-1 
Vous pouvez également jouer avec wmctrlpour obtenir l'ID des fenêtres qui vous intéressent au lieu d'utiliser :ACTIVE:. Je ne peux pas vous aider, car cela dépend des fenêtres en question. Jetez un oeil à man wmctrlplus.
J'ai écrit un script pour ça. Je n'utilise pas Unity, je ne peux donc pas garantir qu'il fonctionnera avec, mais je ne vois aucune raison de ne pas le faire. Il a besoin wmctrl, xdpyinfoet disperà installer:
sudo apt-get install wmctrl x11-utils disper
Ensuite, enregistrez le script ci-dessous sous ~/bin/snap_windows.sh, rendez-le exécutable avec chmod a+x ~/bin/snap_windows.shet vous pouvez exécuter
snap_windows.sh r
Pour accrocher sur le côté droit. Utilisationl pour le côté gauche et aucun argument pour maximiser la fenêtre. Notez qu'il s'exécute sur la fenêtre actuelle, vous devrez donc lui attribuer un raccourci si vous souhaitez qu'il s'exécute sur autre chose que le terminal.
Le script est un peu plus compliqué que ce que vous demandez, car je l'ai écrit pour fonctionner sur des configurations à un ou deux moniteurs. 
#!/usr/bin/env bash
## If no side has been given, maximize 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