Wie behebe ich die Verknüpfung von xbindkeys mit der Maustaste, sodass Tastendrücke wiederholt werden, wenn sie gedrückt gehalten werden?

Wie behebe ich die Verknüpfung von xbindkeys mit der Maustaste, sodass Tastendrücke wiederholt werden, wenn sie gedrückt gehalten werden?

Ich habe eine Logitech MX Revolution-Maus mit einer XF86Search-Tastaturtaste. Ich habe xdotool verwendet, um sie in meiner xbindkeys-Datei als mittlere Maustaste zuzuordnen.

Dieser Mausklick verhält sich nicht mehr wie ein einzelner Tastendruck, sondern wechselt zwischen den Zuständen „Ein“ und „Aus“, wenn er gedrückt gehalten wird. Dieses unerwünschte Verhalten macht es unbrauchbar. Beispielsweise kann ich dadurch die Leinwand in Grafikprogrammen nicht schwenken oder im Ansichtsfenster von Blender herumschwenken.

Wenn Sie xev zum Lesen der Tastenbelegung verwenden, werden die abwechselnden Zustände angezeigt, die ähnlich wie bei sich wiederholenden Tastendrücken auf der Tastatur flackern.

Hat jemand eine Idee, wo das Problem liegt? Ich hatte dieses Problem einmal bei meiner Neuinstallation von Mint 18.2, aber es verschwand nach einem Neustart und Aufladen meiner Akkus. Diesmal ist diese Lösung nicht die Antwort, da es beim Aktualisieren von Mint 18.2 und erneut bei einer Neuinstallation von Ubuntu erneut auftrat.

Ich habe die Suchtaste in Tastaturkürzeln deaktiviert.

Antwort1

Die Lösung, um die Wiederholung eines Tastendrucks zu verhindern, besteht darin, den Befehl xset -r keycode in die Datei xbindkeys einzufügen. Dies funktioniert genauso wie das Deaktivieren der Tastenwiederholung in Einstellungen/Tastatur.

Der vorhandene Code sieht folgendermaßen aus:

"xset -r 225; xdotool mousedown 2"
    m:0x0 + c:225
    XF86Search

"xdotool mouseup 2"
    m:0x0 + c:225 + release
    XF86Search

Dies löste zwar das Problem, aber das eigentliche Problem, das ich hatte, wurde dadurch nicht behoben. Es ging darum, die Suchtaste in Programmen wie Blender perfekt als mittlere Maustaste zu verwenden. Die obige Lösung funktioniert aus einem Grund, den ich nicht verstehe, nicht gut mit dem Shift-Modifikator.

Die beste Lösung für dieses Problem bestand darin, vollständig auf xbindkeys zu verzichten und stattdessen die Emulation des mittleren Klicks zu aktivieren, indem dieser Code hinzugefügt wurde /etc/sysctl.conf:

# Enable mouse button emulation
dev.mac_hid.mouse_button_emulation = 1
# Set 2nd button to 217 - the middle button of MX Revolution mouse.
dev.mac_hid.mouse_button2_keycode = 217

Danach musste ich eine Udev-Datei erstellen, in /etc/udev/rules.d/der ein Skript aufgerufen wird, wenn mein Dongle eingesteckt ist. Dieses Skript enthält den Befehl sysctl --system, der zum Aktivieren der Maus-2-Emulation erforderlich ist. Aus irgendeinem Grund ist sie standardmäßig nicht aktiviert, was ich später untersuchen möchte.

Dies ist meine Udev-Datei speziell für meinen Logitech-Dongle:

SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="046d", RUN+="/bin/sh  /home/user/mouse-initialize-settings.sh"

verwandte Informationen