it-swarm.com.de

Wie binde ich Maustasten an Tasten?

Ich habe eine Logitech MX400 Laser Mouse mit 5 Tasten + 4 für vertikales/horizontales Scrollen. Ich möchte es so einstellen, dass anstelle des horizontalen Scrollens das Drücken rechts auf das Scrollrad gesendet wird Ctrl+Tab und links wird senden Ctrl+Shift+Tab, mit dem ich in Browsern durch Tabs blättern kann.

Außerdem wäre es schön, wenn ich die mittlere Taste einer der seitlichen Tasten zuordnen könnte, da das Herunterdrücken wirklich schwierig ist.

Ein weiterer Bonus wäre, wenn ich ein Skript schreiben könnte, mit dem ich definieren kann, welche Schaltflächen was tun, abhängig davon, welches Fenster gerade aktiv ist.

Ich habe versucht, xmodmap zu verwenden, aber ich konnte nur sehen, wie Tasten neu angeordnet werden, ohne dass Tastensignale gesendet werden.

Danke im Voraus.


Schaltflächenzuordnung (mit xev):

Left        1
Middle      2
Right       3
ScrollUp    4
ScrollDown  5
ScrollLeft  6
ScrollRight 7
Backward    8
Forward     9
19
Callum Rogers

Die xbindkeys und xte können Ihnen helfen.

Zum Beispiel sieht meine .xbindkeysrc-Datei so aus:

# close the window under the mouse cursor
"xte 'mouseclick 1' && xte 'keydown Alt_L' 'key F4' 'keyup Alt_L'"
  b:8+Release

# double click
"xte 'mouseclick 1' 'mouseclick 1'"
  b:9
17
lukasz

Vielen Dank an alle für die Lösung. Hier ist ein narrensicherer/kombinierter Leitfaden (erstellt unter Xubuntu 18.04).

  1. Öffne ein Terminal (wie xterm/terminal/terminator), werde root (Sudo su -) oder benutze Sudo vor dem Befehl:

    apt install xbindkeys xautomation
    
  2. Überprüfen Sie die Tastenzuordnung mit xev. Hierzu benötigen Sie keine Root-Berechtigung. Beenden Sie daher die Root-Sitzung (mit exit) oder öffnen Sie ein anderes Terminal als Benutzer.

    xev | grep button
    
  3. Es erscheint ein kleines Fenster. Sie müssen die Maus in dieses Fenster bewegen und die Taste drücken, die Sie neu zuordnen möchten. Eine Beispielausgabe im Terminal ist:

    state 0x0, button 8, same_screen YES
    

    Dies ist die 2. Seitentaste meiner Maus, die ich als PAGE_DOWN verwenden möchte.

    state 0x0, button 9, same_screen YES
    

    Dies ist die erste (ja, die Reihenfolge ist umgekehrt) Seitentaste, die ich als PAGE_UP verwenden möchte.

  4. Wenn Sie alle Schaltflächen haben, die Sie neu zuordnen möchten, können Sie das kleine xev-Fenster schließen. Öffnen Sie Ihren bevorzugten Editor (z. B. gedit/vi/nano) und bearbeiten Sie die Konfigurationsdatei.

    vi .xbindkeysrc
    
  5. Wenn Sie bereits Inhalte in der Datei haben, prüfen Sie, ob bereits eine Bindung wie diese vorhanden ist (unwahrscheinlich, nicht standardmäßig), und fügen Sie diese am Ende hinzu.

    #Pagedown press
    "xte 'keydown Next'"
    b:8
    
    #Pagedown release
    "xte 'keyup Next'"
    b:8 + Release
    
    #Pagedup press
    "xte 'keydown Prior'"
    b:9
    
    #Pageup release
    "xte 'keyup Prior'"
    b:9 + Release
    

    Hinweis: Sie benötigen zwei Einträge, einen für den Tastendruck und einen für die Freigabe.

  6. Die Tasten 8 + 9 werden den Tasten "Next" (PAGE_DOWN) und "Prior" (PAGE_UP) zugeordnet. Wenn Sie verschiedene Tasten zuordnen möchten, finden Sie das Tastensymbol mit xev.

    xev | grep keysym
    
  7. Starten Sie es wie zuvor in einem Terminal, bewegen Sie die Maus in das kleine Fenster und drücken Sie die gewünschte Taste.

    state 0x0, keycode 117 (keysym 0xff56, Next), same_screen YES,
    
  8. Speichern und töten Sie xbindings.

    killall xbindkeys ; xbindkeys
    

Sie können jetzt die zusätzlichen Seitentasten der Maus verwenden. Die Einstellung wird beim nächsten Neustart/Login automatisch geladen. Sie benötigen den Befehl killall [...] von oben nur, wenn Sie die Einstellungen ändern.

4
malasa