xdotool
Uma ideia difícil, mas você pode conseguir o que deseja criando dois comandos usando xdotool
. Então você poderia executá-los de acordo quando tiver 1 ou 2 monitores conectados.
Há um bom exemplo de como você pode fazer isso neste artigo intitulado: Xubuntu - mover janelas entre monitores .
trecho da seção: Movendo a janela ativa para o outro monitor (finalmente!)
Veja o que precisamos fazer:
- Encontrar a janela ativa
- Obtenha seu estado maximizado e lembre-se
- Remover a maximização
- Obtenha sua geometria
- Calcular a nova posição
- Mova-se
- Maximizar com base no estado anterior
- Aumentar
Este é um script que faz isso:
wid='xdotool getactivewindow'
max_state='xprop -id $wid _NET_WM_STATE'
wmctrl -ir $wid -b remove,maximized_vert,maximized_horz
eval 'xdotool getwindowgeometry --shell $wid'
new_x=1600
if [[ "$X" -ge "$new_x" ]]; then
new_x=0
fi
xdotool windowmove $wid $new_x $Y
if [ -z "${max_state/*_NET_WM_STATE_MAXIMIZED_*/}" ]; then
wmctrl -ir $wid -b add,maximized_vert,maximized_horz
fi
xdotool windowraise $wid
Método mais interativo
Eu também encontrei uma outra abordagem que também fez uso de xdotool
, mas o envolveu em um shell script que você poderia associar a uma tecla de atalho. Usando esse método, você poderia selecionar uma janela para que ela fosse levantada e tivesse foco e, ao acertar a combinação de teclas de atalho, enviasse o aplicativo para outra janela. O artigo intitula-se: Mover janelas entre monitores .
O método fornece o seguinte script, windowmove.sh
:
#!/bin/bash
if [ $1 -eq 2 ]
then
POS1='xrandr --current | head -2 | tail -1 | cut -d 'x' -f1 | cut -d ' ' -f3'
POS2=0
else
POS1=0
POS2=0
fi
/usr/bin/xdotool windowmove '/usr/bin/xdotool getwindowfocus' $POS1 $POS2
exit 0
POS1 calcula a largura da sua tela principal usando a saída de xrandr. Se você achar que o script não pode mover as janelas corretamente, mas ele pode movê-las para a esquerda, tente substituir essa linha por POS1 = 1920 e substitua 1920 pela largura em pixels do seu monitor principal.
Em seguida, execute o applet Ligações de Teclado:
$ gnome-keybinding-properties
OBSERVAÇÃO: Isso pode ser executado em locais diferentes em diferentes distros por meio da GUI.
Crie 2 atalhos de teclado usando esses dois aplicativos:
- comando da ligação 1:
./Scripts/windowmove.sh 1
- comando da ligação 2:
./Scripts/windowmove.sh 2