Deaktivieren Sie die Maus (nicht das Touchpad!) In Xorg im Leerlauf

17

Ich bin ein begeisterter Tastaturbenutzer, aber ich brauche immer noch ab und zu die Maus. Um die Handbewegung zu minimieren, befindet sich die Maus unter meiner Tastatur. (Nebenbei bemerkt, fühlt sich die Verwendung der Maus für meine Hand natürlicher an.)

Ich verwende derzeit Unclutter , um den Zeiger auszublenden, während ich die Maus nicht benutze. Leider stupse ich es manchmal beim Tippen an, wodurch der Zeiger wieder erscheint. Manchmal bewegt dies den Mauszeiger über ein anderes Fenster, wodurch der Fokus von meinem aktuellen Fenster entfernt wird. (Ich verwende den schlampigen Fokus, und dies zu ändern, ist keine Option.)

Ich suche jetzt nach einer Möglichkeit, den Mauszeiger nicht nur nach einer bestimmten Leerlaufzeit auszublenden, sondern die Maus insgesamt zu deaktivieren. Klicken Sie auf eine beliebige Maustaste oder verwenden Sie das Mausrad, um die Maus wieder zu aktivieren.

igor
quelle

Antworten:

16

Als erstes müssen wir die Maus ausschalten, aber nur in X. Dafür könnten wir verwenden xinput.

Wir müssen Eingabegeräte erkennen, die mit dem Computer (mit dem X-Server) verbunden sind:

pbm@tauri ~ $ xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ A4Tech USB Mouse                          id=10   [slave  pointer  (2)]
⎜   ↳ Macintosh mouse button emulation          id=11   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
     [...]

Das Gerät, das wir verwenden müssen, ist A4Tech USB Mousemit id=10. Als nächstes müssen wir die Eigenschaften dieses Geräts überprüfen:

pbm@tauri ~ $ xinput list-props "A4Tech USB Mouse"
Device 'A4Tech USB Mouse':
       Device Enabled (121):   1
       [....]

Um das Gerät auszuschalten, müssen wir die Eigenschaft ändern Device Enabled:

xinput set-prop DEV PROP STATE
xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0

So schalten Sie es ein:

xinput set-prop "A4Tech USB Mouse" "Device Enabled" 1

Das nächste ist, es automatisch zu machen ...;) In diesem Beispiel deaktivieren wir die Maus per Tastenkürzel und aktivieren sie durch Drücken der linken + rechten Maustaste.

Dafür könnten wir actkbd verwenden - einen Tastaturkürzel-Daemon (aber nicht nur), der außerhalb des X-Servers funktioniert.

Zunächst müssen wir leere Konfigurationsdatei für actkbd erstellen: touch /etc/actkbd.conf. Als Nächstes müssen Sie die an den Computer angeschlossenen Geräte ermitteln:

pbm@tauri ~ $ cat /proc/bus/input/devices 
I: Bus=0003 Vendor=046d Product=c312 Version=0110
N: Name="BTC USB Multimedia Keyboard"
P: Phys=usb-0000:00:1d.0-1.6/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/input/input6
U: Uniq=
H: Handlers=kbd event3 
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0003 Vendor=09da Product=000a Version=0110
N: Name="A4Tech USB Mouse"
P: Phys=usb-0000:00:1d.0-1.5/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0/input/input8
U: Uniq=
H: Handlers=mouse1 event5 
B: EV=17
B: KEY=ff0000 0 0 0 0
B: REL=343
B: MSC=10

[...]

In diesem Teil sind die Namen und Handler von Tastatur- und Mausgeräten am interessantesten.

Zuerst schalten wir die Maus per Tastaturkürzel aus, also müssen wir die Schlüssel-IDs ermitteln:

pbm@tauri ~ $ sudo actkbd -s -d /dev/input/event3
Keys: 29+41+42 //we need to press keys that will turn off mouse, 29+41+42 is Ctrl + Shift + `

Wenn wir wissen, was Schlüssel-IDs sind, müssen wir sie in config file ( /etc/actkbd.conf) ablegen :

29+41+42:::sudo -u pbm DISPLAY=:0 xinput set-prop "A4Tech USB Mouse" "Device Enabled" 0

Um es zu testen, müssen wir actkbdim Daemon-Modus laufen :

pbm@tauri ~ $ sudo actkbd -d /dev/input/event3 -D

Genauso müssen wir das "Einschalten" -Ereignis behandeln:

  1. Überprüfen Sie die Handler des Mausgeräts
  2. Überprüfen Sie die Tastencodes der linken und rechten Maustaste mit actkbd
  3. Setzen Sie es an actkbd.conf
  4. Führen Sie den actkbd-Dämon aus, um das Mauseingabegerät zu überwachen

Laufende Daemons können als Init-Skript oder Autorun-Skript in der Umgebung ausgeführt werden.

Um die Maus automatisch auszuschalten, können wir das Eingabegerät ( cat /dev/input/event5) überwachen und es ausschalten, wenn keine Eingabe erfolgt ...

Ich hoffe, dass mein kurzes Intro dir hilft ...;)

pbm
quelle
Danke für den Hinweis mit actkbd! Nachdem ich meine Frage gepostet hatte, hatte ich bereits herausgefunden, xinputwie ich die Maus durch Drücken der Maustasten wieder aktivieren könnte.
Igor
Dies ist eine sehr gut geschriebene Antwort.
pjc50
Vielen Dank für diese Information, insbesondere für den Hinweis mit atkkbd
Anstatt die Option --set-prop zusammen mit der Eigenschaft "Gerät aktiviert / deaktiviert" zu verwenden, können auch die Optionen --enable und --disable verwendet werden, z. B. xinput --enable [Gerät] und xinput --disable [Gerät]. .
Thebodzio
1

Haben Sie ein Gnome-Panel-Applet "Pointer Capture" ausprobiert ?

Der Mauszeiger kann in einem Bereich des Bildschirms verriegelt werden, sodass das Zeigegerät für andere Aufgaben frei ist. Diese Funktion ermöglicht es beispielsweise einem Rollstuhlbenutzer, sowohl den Rollstuhl als auch den Mauszeiger mit einem einzigen Rollstuhl-Joystick zu steuern

Das Panel-Applet Zeigererfassung erstellt einen solchen Bereich im Panel, in dem der Benutzer den Zeiger sperren kann, bis er auf bestimmte Weise freigegeben wird.

Das Pointer Capture-Bedienfeld-Applet kann installiert werden, indem Sie mit der rechten Maustaste auf die GNOME Desktop-Menüleiste / das Systembedienfeld klicken, Zu Bedienfeld hinzufügen auswählen, Pointer Capture auswählen und auf die Schaltfläche Hinzufügen klicken

Falls die Beschreibung von gnome.org nicht eindeutig ist, wird ein Bereich im Bedienfeld erstellt, in dem der Cursor beim Eingeben der Maus (oder beim Klicken) verschwindet und erst wieder angezeigt wird, wenn eine definierte Aktion ausgeführt wird, z. B. a zweiter Klick. Klingt nach genau dem, was du brauchst?

Josh
quelle
Ich habe dies verwendet, aber einige Probleme geschaffen. Ich war nicht in der Lage, über das Anwendungsmenü Alt + F1zu öffnen. Ich weiß nicht, was das verursacht hat. Ich bin ein Ubuntu-Benutzer.
Balki