J'utilise Gnome3 comme interface de bureau. J'utilise deux moniteurs. Je veux pouvoir déplacer le curseur de la souris d'un moniteur à l'autre à l'aide de mon clavier, par exemple avec les touches ctrl + alt + touche droite. Comment puis-je configurer cela?
Le script ci-dessous peut être exécuté avec deux arguments: left
et right
.
Dans une configuration à deux écrans (gauche/droite, quelle que soit la configuration), le script déplace la souris vers le centre de gauche ou de droite. surveiller, en fonction de l'argument.
#!/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]])
Le script a besoin de xdotool
:
Sudo apt-get install xdotool
Copiez le script dans un fichier vide, enregistrez-le sous le nom move_mouse.py
Test-exécuter le script. Exécuter depuis un terminal les commandes:
python3 /path/to/move_mouse.py left
et
python3 /path/to/move_mouse.py right
Si tout fonctionne correctement, ajoutez les commandes aux deux raccourcis disponibles: Choisissez: Paramètres système> "Clavier"> "Raccourcis"> "Raccourcis personnalisés". Cliquez sur le "+" et ajoutez les commandes ci-dessus.
Le script n'est pas gnome
spécifique; il devrait fonctionner correctement sur toutes les distributions Ubuntu.
Nous pouvons déplacer la souris à une position spécifique à l'aide de la commande (par exemple):
xdotool mousemove 300 500
Pour calculer les positions ciblées (centrées) dans les deux écrans, nous devons comprendre que les écrans connectés sont positionnés de manière arbitraire, par exemple.
Dans la sortie de xrandr
, nous pouvons trouver des informations sur les deux écrans, leurs résolutions et leurs positions dans la disposition transversale, comme:
1280x1024+1680+128
Pour obtenir la position ciblée par écran (centre), il suffit de diviser le premier et le deuxième nombre (1280x1024, la résolution) par 2, puis d’ajouter les deux positions calculées au décalage par écran (+ 1680 + 128 dans ce cas). Cas). C'est exactement ce que fait le script.
Par la suite, les nombres trouvés sont utilisés comme arguments pour exécuter la commande xdotool mousemove
-.
Dans Ubuntu 18.04, il n’existe aucun raccourci personnalisé. Ainsi, suivant l’approche de @ JacobVlijm , j’ai calculé mes centres et écrit des alias dans mon shell:
Sudo echo -e "\
alias lt='xdotool mousemove 640 360' \n\ # lt means left
alias rt='xdotool mousemove 1920 512'\ # rt means right
" >> .bashrc