Alterne entre as telas e (opcionalmente) defina o foco na janela (tela inteira)
O script abaixo irá alternar (e "focar") entre as telas esquerda e direita se as duas telas estiverem mais ou menos alinhadas no centro ou no topo, e < em> mais ou menos da mesma resolução vertical.
Eu suponho em praticamente todas as situações de uma configuração de tela esquerda / direita que funcionará.
O script
#!/usr/bin/env python3
import subprocess
# just a helper function
get = lambda cmd: subprocess.check_output(cmd).decode("utf-8")
# get the current mouse position
current = [int(n) for n in [it.split(":")[1] for it in get(["xdotool", "getmouselocation"]).split()[:2]]]
# get the x/y size of the left screen
screendata = [(s.split("x")[0], s.split("x")[1].split("+")[0]) for s in get(["xrandr"]).split() if "+0+0" in s ][0]
xy = [int(n) for n in screendata]
# see if the mouse is on the left- or right screen
if current[0] < xy[0]:
# if the mouse currently is on the left screen, move it to the right (from the middle of the left screen)
command = ["xdotool", "mousemove", "--sync", str(current[0]+xy[0]), str(xy[1]/2)]
else:
# if the mouse currently is on the left screen, move it to the right (from the middle of the left screen)
command = ["xdotool", "mousemove", "--sync", str(current[0]-xy[0]), str(xy[1]/2)]
subprocess.Popen(command)
# optional: click after the mouse move: comment out if not needed / wanted
subprocess.Popen(["xdotool", "click", "1"])
Como usar
-
O script precisa de
xdotool
para ser instalado (!)sudo apt-get install xdotool
-
Copie o script em um arquivo vazio, salve-o como
toggle_screenloc.py
-
Teste-o pelo comando:
python3 /path/to/toggle_screenloc.py
-
Se tudo funcionar bem, adicione-o a uma tecla de atalho: Escolha: Configurações do sistema > "Teclado" > "Atalhos" > "Atalhos personalizados". Clique no botão "+" e adicione o comando:
python3 /path/to/toggle_screenloc.py
O que faz exatamente
Se o script for executado, ele:
- deriva o tamanho da tela (esquerda) (x / y) da saída do comando
xrandr
.
-
ele vê se o mouse está na tela esquerda ou direita, marcando o comando (
xdotool
):xdotool getmouselocation
Se o ponteiro do mouse estiver localizado na tela esquerda:
- ele é movido para o meio (verticalmente) da tela esquerda e movido horizontalmente para uma posição, igual à posição atual + a largura da tela à esquerda.
Se o ponteiro do mouse estiver na tela da direita:
- as ações são o oposto.
Posteriormente, o mouse clica uma única vez para definir o foco no (possível) aplicativo de tela cheia (opcional).