Mover o mouse para uma posição definida (absoluta)
.. é feito simplesmente pelo comando (por exemplo):
xdotool mousemove 200 200
Para mover o mouse para o centro da tela, porém, é um comando relativo , para o qual precisamos ler as informações da tela e fazer alguns cálculos. Isso é feito nos dois pequenos scripts abaixo.
Versão simples (mova o cursor para o centro da tela esquerda)
Para mover o mouse para o centro da tela (mais à esquerda), use o script abaixo:
#!/usr/bin/env python3
import subprocess
xr = [s for s in subprocess.check_output("xrandr").decode("utf-8").split() if "+0+" in s]
scr = [int(n)/2 for n in xr[0].split("+")[0].split("x")]
subprocess.Popen(["xdotool", "mousemove", str(scr[0]), str(scr[1])])
-
instale o xdotool
sudo apt-get install xdotool
-
Copie o script em um arquivo vazio, salve-o como
center_screen.py
-
Execute:
python3 /path/to/center_screen.py
Versão estendida (argumentos opcionais x, y)
Se as coordenadas arbitrárias forem opcionais , use:
#!/usr/bin/env python3
import subprocess
import sys
if sys.argv[1:]:
scr = [sys.argv[1], sys.argv[2]]
else:
xr = [s for s in subprocess.check_output("xrandr").decode("utf-8").split() if "+0+" in s]
scr = [str(int(n)/2) for n in xr[0].split("+")[0].split("x")]
subprocess.Popen(["xdotool", "mousemove", scr[0], scr[1]])
Esta versão moverá o cursor para o centro da tela, quando executado sem argumentos, ou para uma posição arbitrária, quando executado com argumentos , por exemplo:
python3 /path/to/center_screen.py 200 200
Explicação
Na saída do comando: xrandr
, tudo que precisamos encontrar é a string como:
1680x1050+0+0
... que contém os dados na tela mais à esquerda ( +0+
). ambas as figuras em 1680x1050
são então divididas por duas, para serem usadas em:
xdotool mousemove <x> <y>
A linha:
if sys.argv[1:]:
decide então se os argumentos dados devem ser usados ou calculados.