Depois de mexer nas coisas por um tempo, obtive uma solução que funciona com genstures de mouse, seguindo a sugestão de este post .
Eu criei dois scripts, um para encaixe à esquerda e outro para encaixar corretamente.
dockleft:
#! /usr/bin/env bash
WIDTH='xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x' '
HALF=$(($WIDTH/2))
QUARTER=$(($WIDTH/4))
winid='xdpyinfo | grep focus | grep -E -o 0x[0-9a-f]+'
x='xwininfo -id $winid | grep "Absolute upper-left X" | cut -f 2 -d ':''
y='xwininfo -id $winid | grep "Absolute upper-left Y" | cut -f 2 -d ':''
if [ $x -lt $HALF ]; then
wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,0,0,$QUARTER,-1
else
wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$HALF,0,$QUARTER,-1
fi
dockright:
#! /usr/bin/env bash
WIDTH='xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x' '
HALF=$(($WIDTH/2))
QUARTER=$(($WIDTH/4))
THREEQUARTERS=$(($WIDTH*3/4))
winid='xdpyinfo | grep focus | grep -E -o 0x[0-9a-f]+'
x='xwininfo -id $winid | grep "Absolute upper-left X" | cut -f 2 -d ':''
y='xwininfo -id $winid | grep "Absolute upper-left Y" | cut -f 2 -d ':''
if [ $x -lt $HALF ]; then
wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$QUARTER,0,$QUARTER,-1
else
wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$THREEQUARTERS,0,$QUARTER,-1
fi
Em seguida, usei o easystroke para atribuir gestos do mouse para atracar à esquerda, encaixar corretamente e maximizar. Isso não emula perfeitamente a versão do Windows, mas pelo menos não estarei maximizando minhas janelas automaticamente. Dessa forma, também posso atribuir os scripts a teclas de atalho para maior conveniência.
OBSERVAÇÃO: Isto é para minha configuração de monitor duplo Twinview que leva em conta que eu quero a janela encaixada na lateral do monitor, não a 'área de trabalho' que aparece no Ubuntu como Muito único monitor largo.
Isso provavelmente será suficiente para mim, mas se houver uma solução melhor por aí, eu realmente gostaria de ouvir.