web-dev-qa-db-fra.com

Comment déplacer le curseur de la souris entre des moniteurs avec des clés dans Gnome3?

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?

6
PhoenixPerson

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.

enter image description here

Le scénario

#!/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]])

Comment utiliser

  1. Le script a besoin de xdotool:

    Sudo apt-get install xdotool
    
  2. Copiez le script dans un fichier vide, enregistrez-le sous le nom move_mouse.py

  3. 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
    
  4. 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.

Remarque

Le script n'est pas gnome spécifique; il devrait fonctionner correctement sur toutes les distributions Ubuntu.

Explication

  • 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.

    enter image description here

  • 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-.

6
Jacob Vlijm

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
2
atongsa