O script abaixo pode ser executado com dois argumentos: left
e right
.
Em uma configuração de dois monitores (esquerda / direita, em qualquer configuração), o script moverá o mouse para o centro do monitor esquerdo ou direito, dependendo do argumento. / p>
Oscript
#!/usr/bin/env python3
import subprocess
import sys
arg = sys.argv[1]
screeninfo = [
s for s in subprocess.check_output("xrandr").decode("utf-8").split()\
if s.count("+") == 2
]
if arg == "left":
match = [s for s in screeninfo if s.endswith("+0+0")][0]
elif arg == "right":
match = [s for s in screeninfo if not s.endswith("+0+0")][0]
data = [item.split("x") for item in match.split("+")]
numbers = [int(n) for n in [item for sublist in data for item in sublist]]
coord = [str(int(n)) for n in [(numbers[0]/2)+numbers[2], (numbers[1]/2)+numbers[3]]]
subprocess.Popen(["xdotool", "mousemove", coord[0], coord[1]])
Como usar
-
O script precisa de
xdotool
:sudo apt-get install xdotool
-
Copie o script em um arquivo vazio, salve-o como
move_mouse.py
-
Teste o script. Execute a partir de um terminal os comandos:
python3 /path/to/move_mouse.py left
e
python3 /path/to/move_mouse.py right
-
Se tudo funcionar bem, adicione os comandos a dois atalhos disponíveis: Escolha: Configurações do sistema > "Teclado" > "Atalhos" > "Atalhos personalizados". Clique no botão "+" e adicione os comandos acima.
Nota
O script não é gnome
-specific; ele deve rodar bem em todas as distribuições do Ubuntu.
Explicação
-
Podemos mover o mouse para uma posição específica pelo comando (por exemplo):
xdotool mousemove 300 500
-
Para calcular as posições segmentadas (centralizadas) nas duas telas, precisamos entender que as telas conectadas estão posicionadas em um layout arbitrário, por exemplo,
-
Na saída de
xrandr
, podemos encontrar informações nas duas telas, suas resoluções e suas posições no layout de expansão, como:1280x1024+1680+128
-
Para obter a posição desejada por tela (centro), tudo o que precisamos fazer é dividir o primeiro e o segundo número (1280x1024, a resolução) por 2, adicionar posteriormente as duas posições calculadas ao deslocamento por tela (+1680+ 128 neste caso). Isso é exatamente o que o script faz.
Posteriormente, os números encontrados são usados como argumentos para executar o
xdotool mousemove
-command.