J'ai un script qui réinitialise certaines choses, et à la fin de celui-ci, j'ai besoin de régler le curseur sur certaines coordonnées, soit sur un ensemble personnalisé, soit sur le centre de l'écran (où il est réinitialisé par défaut lors du redémarrage de gnome-Shell
par exemple).
Comment cela peut il etre accompli? La solution devrait fonctionner pour toutes les tailles d’affichage et être capable d’obtenir automatiquement les données et de faire tous les calculs, etc.
J'utilise Ubuntu GNOME 16.04 avec GNOME 3.20.
..est simplement fait par la commande (par exemple):
xdotool mousemove 200 200
Déplacer la souris vers le centre de l'écran est cependant une commande relative, pour laquelle nous devons lire les informations de l'écran et faire des calculs. Ceci est fait dans les deux petits scripts ci-dessous.
Pour déplacer la souris au centre de l'écran (le plus à gauche), utilisez le script ci-dessous:
#!/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])])
installer xdotool
Sudo apt-get install xdotool
Copiez le script dans un fichier vide, enregistrez-le sous le nom center_screen.py
Exécuter:
python3 /path/to/center_screen.py
Si des coordonnées arbitraires sont facultatif, utilisez:
#!/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]])
Cette version déplacera le curseur au centre de l'écran lors de l'exécution de sans arguments, ou à une position arbitraire lors de l'exécution de avec arguments, par exemple:
python3 /path/to/center_screen.py 200 200
Dans le résultat de la commande: xrandr
, il suffit de trouver la chaîne suivante:
1680x1050+0+0
... qui contient les données sur l'écran le plus à gauche (+0+
). les deux chiffres dans 1680x1050
doivent alors être divisés par deux pour être utilisés dans:
xdotool mousemove <x> <y>
La ligne:
if sys.argv[1:]:
est alors de décider si les arguments donnés doivent être utilisés ou ceux calculés.