it-swarm.com.de

Wie bewege ich den Mauszeiger zwischen Monitoren mit Tasten in Gnome3?

Ich benutze Gnome3 als Desktop-Oberfläche. Ich benutze zwei Monitore. Ich möchte meinen Mauszeiger mit meiner Tastatur von einem Monitor zum anderen bewegen können, beispielsweise mit Strg + Alt + Rechts-Taste. Wie richte ich das ein?

6
PhoenixPerson

Das folgende Skript kann mit zwei Argumenten ausgeführt werden: left und right.

Bei einer Konfiguration mit zwei Monitoren (links/rechts, in jeder Konfiguration) bewegt das Skript die Maus in die Mitte von links oder rechts Monitor, je nach Argument.

enter image description here

Das Drehbuch

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

Wie benutzt man

  1. Das Skript benötigt xdotool:

    Sudo apt-get install xdotool
    
  2. Kopieren Sie das Skript in eine leere Datei und speichern Sie es als move_mouse.py

  3. Führen Sie das Skript aus. Führen Sie an einem Terminal die folgenden Befehle aus:

    python3 /path/to/move_mouse.py left
    

    und

    python3 /path/to/move_mouse.py right
    
  4. Wenn alles funktioniert, fügen Sie die Befehle zwei verfügbaren Verknüpfungen hinzu: Wählen Sie: Systemeinstellungen> "Tastatur"> "Verknüpfungen"> "Benutzerdefinierte Verknüpfungen". Klicken Sie auf das "+" und fügen Sie die obigen Befehle hinzu.

Hinweis

Das Skript ist nicht gnome -spezifisch. es sollte auf allen Ubuntu-Distributionen funktionieren.

Erläuterung

  • Wir können die Maus mit dem Befehl an eine bestimmte Position bewegen (z. B.):

    xdotool mousemove 300 500
    
  • Um die Zielpositionen (zentriert) in beiden Bildschirmen zu berechnen, müssen wir verstehen, dass verbundene Bildschirme in einem beliebigen Layout positioniert sind, z.

    enter image description here

  • In der Ausgabe von xrandr finden wir Informationen zu beiden Bildschirmen, deren Auflösungen und Positionen im übergreifenden Layout, wie zum Beispiel:

    1280x1024+1680+128
    
  • Um die Zielposition pro Bildschirm (Mitte) zu erhalten, müssen wir lediglich die erste und die zweite Zahl (1280 x 1024, die Auflösung) durch 2 teilen und anschließend die beiden berechneten Positionen zum Versatz pro Bildschirm hinzufügen (+ 1680 + 128) Fall). Genau das macht das Skript.

    Anschließend werden die gefundenen Zahlen als Argumente verwendet, um den Befehl xdotool mousemove- auszuführen.

6
Jacob Vlijm

In Ubuntu 18.04 gibt es keine benutzerdefinierten Verknüpfungen. Daher habe ich nach dem @ JacobVlijm's -Ansatz meine Zentren berechnet und Aliase in meine Shell geschrieben:

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