Konfigurieren Sie zusätzliche Maustasten unter Wayland


10

Ich benutze eine 10-Tasten-Maus (Logitech M705). Unter X11 konnte ich eine der zusätzlichen Schaltflächen so konfigurieren, dass sie sich durch Ändern der Dateien in als zweiter Mittelklick verhält etc/X11/xorg.conf.d.

Unter Wayland funktioniert das nicht mehr. Meine Forschung zeigt, dass ich etwas tun muss libinput. Ich dachte, dies wäre ein häufiges Problem, kann aber nirgendwo eine Antwort finden.

Kann jemand erklären, wie man Maustasten neu zuordnet oder warum dies nicht möglich ist?


Ich benutze Wayland für eine Weile und konnte bisher keine Möglichkeit finden, Schaltflächen neu zuzuordnen.
Paulodiovani

Antworten:


6

Das Neuzuordnen von Schaltflächen, wenn Sie Wayland ausführen, kann folgendermaßen erfolgen:

  1. Führen Sie xev | grep buttondiese Option aus, um Mausklickereignisse zu protokollieren und die Nummer des Ereignisses durch Klicken in das Fenster abzurufen. In meinem Fall ist der mittlere Knopf:

    state 0x10, button 2, same_screen YES
    

    und ich möchte es abbilden:

    state 0x10, button 13, same_screen YES
    
  2. Dann laufen Sie xinput --listund finden Sie Ihr Zeigergerät, meins ist:

    Logitech Performance MX  id=9  [slave pointer  (2)]
    
  3. xinput get-button-map 9 kehrt zurück:

    1 2 3 4 ... 20
    
  4. xinput set-button-map:

    $ xinput set-button-map 9  1 13 3 4 .. 12 2 14 .. 20
    

HINWEIS: Ersetzen Sie die Nummer 9durch die von zurückgegebene Nummerid=

Wenn das Verhalten dieses Schlüssels definiert ist, wird Ihr Ereignis zugeordnet. Wenn nicht, ist das ein etwas anderes Problem. Unter Wayland TBH habe ich keine Möglichkeit gefunden, einen Befehl für ein Ereignis auszuführen (was mit Xorgs ziemlich einfach ist xbindkeys) und daher das Verhalten von Schlüssel- und Mausereignissen vollständig anzupassen. Ich glaube, Wayland versucht, sicherer zu sein und deaktiviert dieses Verhalten .

In jedem Fall haben Sie immer noch die Möglichkeit, ganz einfach zu Xorg zu wechseln und die Funktionalität zu genießen.


Hat für mich gearbeitet, aber wie macht man die Änderung dauerhaft? Scheint, ich muss xinput set-button-mapfür jede neue Wayland-Sitzung laufen ...
mgalgs

1
Ja, Sie müssen es jedes Mal ausführen. Um dies zu automatisieren, können Sie dies in ein Skript einfügen und eine Servicedatei erstellen oder in einen Init-Ordner, der beim Start entsprechend Ihrer Distribution ausgeführt wird (auf einem systemd-basierten Betriebssystem, das /etc/rc.d/init wäre) .d /)
CermakM

Sie können eine Option in xconf-Dateien einfügen: Option "ButtonMapping" "1 2 3 ..."
le hollandais volant

Dies ändert nur den xorg-Eingabetreiber, keine Anwendungen, die die Wayland-Komposition nativ verwenden, wie Gnome Shell oder Nautilus
Ray Foss,

3

Ich habe ein kleines Shell-Skript + eine Systemd-Unit-Datei erstellt, die ich Wayland-Mouse-Mapper nenne .

Auszug Mathportillo / Wayland-Mouse-Mapper

Ein kleines Skript zum Zuordnen von Maustasten zu Tastenanschlägen auf Wayland.

Ich habe mir vorgenommen, meine Maustasten für nützliche Dinge zu verwenden. Es wurde getestet und funktioniert mit Logitech MX Master 2S unter Fedora 27 unter Verwendung von Gnome und funktioniert auch mit meinem alten Logitech Performance MX. Es funktioniert wahrscheinlich mit jeder Wayland- und jeder Logitech-Maus (oder jeder Maus, wenn Sie Zuordnungen bearbeiten), da keine andere Methode (xdotools, xbindkeys usw.) zu funktionieren schien.

Es funktioniert durch Lesen von libinput-Debug-Ereignissen und Auslösen von Schlüsselereignissen mit evemu, abhängig von der erkannten Schaltfläche des erkannten Geräts.

Tasten

Dies sind nur die Standardeinstellungen. Sie können sie am Anfang des Skripts mousemapper.sh anpassen.

  • Weiterleiten: Zum Arbeitsbereich über ( Super+ Page up) wechseln
  • Zurück: Zum Arbeitsbereich unten wechseln ( Super+ Page down)

0

Versuchen Sie, die hwdb udev-Regeln zu ändern. Dadurch werden die Maustasten als Tastaturtaste wie Launch8 / F16 registriert und ihre Funktionalität in allen Programmen, Wayland oder auf andere Weise deaktiviert.

# /usr/lib/udev/hwdb.d/71-mouse-local.hwdb

evdev:input:*
 KEYBOARD_KEY_90004=key_f16
 KEYBOARD_KEY_90005=key_f17

dann als root systemd-hwdb update; udevadm triggerund ziehen Sie die Maus heraus, dann stecken Sie sie wieder ein.

Zusätzliche Überprüfung der Integrität: sudo udevadm info /dev/input/by-path/*-usb-*-mouse | grep -A3 -P3 KEYBOARD_KEYoder Abfrage als solche. Weitere systemd-hwdb query "evdev:input:v046dp406a*Informationen zum Abrufen der ID finden Sie in der Quelle.

Quelle: https://yulistic.gitlab.io/2017/12/linux-keymapping-with-udev-hwdb/

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.