Se o seu objetivo principal é evitar o uso do mouse, esse script permite um atalho de teclado para mover as janelas entre os monitores. Ele funciona muito bem para mim na minha configuração de monitor triplo. Em seguida, você pode atribuir um atalho de teclado ao bloco depois de se mudar para um novo monitor.
- Faça o download do script abaixo. Salvar em ~ / bin /
- Torne-o executável: chmod + x ~ / bin / mover para o próximo monitor
Fonte: link . Graças a jc00ke!
#!/bin/sh
#
# Move the current window to the next monitor.
#
# Also works only on one X screen (which is the most common case).
#
# Props to
# http://icyrock.com/blog/2012/05/xubuntu-moving-windows-between-monitors/
#
# Unfortunately, both "xdotool getwindowgeometry --shell $window_id" and
# checking "-geometry" of "xwininfo -id $window_id" are not sufficient, as
# the first command does not respect panel/decoration offsets and the second
# will sometimes give a "-0-0" geometry. This is why we resort to "xwininfo".
# Make sure your largest monitor is set to Primary display.
screen_width='xdpyinfo | awk '/dimensions:/ { print $2; exit }' | cut -d"x" -f1'
screen_height='xdpyinfo | awk '/dimensions:/ { print $2; exit }' | cut -d"x" -f2'
display_width='xdotool getdisplaygeometry | cut -d" " -f1'
display_height='xdotool getdisplaygeometry | cut -d" " -f2'
window_id='xdotool getactivewindow'
# Remember if it was maximized.
window_state='xprop -id $window_id _NET_WM_STATE | awk '{ print $3 }''
# Un-maximize current window so that we can move it
wmctrl -ir $window_id -b remove,maximized_vert,maximized_horz
# Read window position
x='xwininfo -id $window_id | awk '/Absolute upper-left X:/ { print $4 }''
y='xwininfo -id $window_id | awk '/Absolute upper-left Y:/ { print $4 }''
# Subtract any offsets caused by panels or window decorations
x_offset='xwininfo -id $window_id | awk '/Relative upper-left X:/ { print $4 }''
y_offset='xwininfo -id $window_id | awk '/Relative upper-left Y:/ { print $4 }''
x='expr $x - $x_offset'
y='expr $y - $y_offset'
# Compute new X position
new_x='expr $x + $display_width'
# Compute new Y position
new_y='expr $y + $display_height'
# If we would move off the right-most monitor, we set it to the left one.
# We also respect the window's width here: moving a window off more than half its width won't happen.
width='xdotool getwindowgeometry $window_id | awk '/Geometry:/ { print $2 }'|cut -d"x" -f1'
if [ 'expr $new_x + $width / 2' -gt $screen_width ]; then
new_x='expr $new_x - $screen_width'
fi
height='xdotool getwindowgeometry $window_id | awk '/Geometry:/ { print $2 }'|cut -d"x" -f2'
if [ 'expr $new_y + $height / 2' -gt $screen_height ]; then
new_y='expr $new_y - $screen_height'
fi
# Don't move off the left side.
if [ $new_x -lt 0 ]; then
new_x=0
fi
# Don't move off the bottom
if [ $new_y -lt 0 ]; then
new_y=0
fi
# Move the window
xdotool windowmove $window_id $new_x $new_y
# Maintain if window was maximized or not
if [ "${window_state}" = "_NET_WM_STATE_MAXIMIZED_HORZ," ]; then
wmctrl -ir $window_id -b add,maximized_vert,maximized_horz
fi
- Se ainda não estiver instalado, instale o xdotool e o wmctrl: sudo apt-get install xdotool wmctrl
- Em seguida, atribua um atalho de teclado para o script em Teclado > Atalhos de aplicativos. (Eu uso Alt + Direita. Em seguida, para lado direito, uso Ctrl + Alt + Direita e para a esquerda, Ctrl + Alt + Esquerda. Os atalhos de teclado na janela estão no Gerenciador de Janelas.)
Fonte: link
Para monitores de tamanhos diferentes
Eu tenho um monitor central de 1920x1080 e dois monitores laterais de 1440x900.
display_width='xdotool getdisplaygeometry | cut -d" " -f1'
display_height='xdotool getdisplaygeometry | cut -d" " -f2'
Os dois comandos acima exibem as dimensões do meu maior monitor, mesmo que a janela esteja em um monitor lateral. Portanto, o script sempre movia a janela de acordo com essas dimensões. Isso fazia com que o script nem sempre fosse movido para o próximo monitor, mas às vezes ele se movia para o monitor anterior. Eu tirei a largura total da tela (4800) e dividi-a por três. Agora ele sempre passa para o próximo monitor.
display_width="1600"
display_height='xdotool getdisplaygeometry | cut -d" " -f2'