Wie binde ich Maustasten an Tasten?

19

Ich habe eine Logitech MX400 Laser Mouse mit 5 Tasten + 4 für vertikales / horizontales Scrollen. Ich möchte, dass es so eingerichtet wird, dass beim Drücken der rechten Maustaste anstelle des horizontalen Bildlaufs Ctrl+ gesendet wird Tabund die linke Maustaste Ctrl+ Shift+ sendet , sodass Tabich in Browsern durch die Registerkarten 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, mit, xmodmapaber ich konnte nur sehen, wie man Tasten neu anordnet, nicht, dass sie Tastensignale senden.

Danke im Voraus.


Button Map (mit xev):

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

Antworten:

18

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
Lukasz
quelle
Das ist fantastisch und erweiterbar, vielen, vielen Dank
Callum Rogers
1
Um xte auf Ubuntu 16.x zu bekommen, müssen Sie xautomation von apt installieren .
1111161171159459134
Das funktioniert nicht so gut wie ich es mag, weil es nicht so funktioniert, wenn ich den Knopf gedrückt halte. Meine alte Maus hatte eine Taste, mit der sich das Mausrad frei drehen kann. Das ist großartig, wenn ich nur schnell anfangen und weit scrollen möchte. Aber mein neues hat das nicht, also habe ich zwei Schaltflächen an der Seite (ich denke, sie sind als Vor- / Zurück-Schaltflächen für das Surfen im Web konzipiert) an die PgUp / PgDn-Tasten gebunden. Aber ich muss sie wiederholt drücken, wenn ich weiter scrollen möchte. Ich kann sie nicht einfach festhalten. Wie bringe ich es dazu, die Taste so lange zu halten, wie ich die Taste gedrückt halte?
Flarn2006
5

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 Tastenbelegung mit xev, dazu benötigen Sie keine Root-Berechtigung, beenden Sie also 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 killall [...]Befehl von oben nur, wenn Sie die Einstellungen ändern.

Malasa
quelle