Die seitliche Berührungstaste der Microsoft Sculpt Comfort Mouse neu zuordnen

12

Ich habe kürzlich eine Microsoft Sculpt Comfort Mouse gekauft. Es nutzt Bluetooth an meinen Laptop und alle gängigen Maustasten arbeiten perfekt unter Linux und Windows 7. verbindet Was ist mit dieser Maus ist anders, aber, dass es eine spezielle hat Windows/ SuperTaste auf der Seite , dass startet der Start / Menü , wenn sie gedrückt. Es hat auch einen Berührungssensor, der erkennt, wenn die Seitentaste nach oben oder unten gedrückt wird, und die Maus vibriert, um zu bestätigen, dass sie aktiviert wurde.

Natürlich gibt es in Windows ein Programm, mit dem ich die Bewegungen ändern und die Vibration ausschalten kann.

Unter Linux erkennt xev nur einen normalen Tastenanschlag, wenn die Seitentaste gedrückt oder gewischt wird. Xev meldet keine Mausklicks.

Meine Frage ist also, kann ich ändern, welche Tastendrücke unter Linux gesendet werden?

Ich würde gerne die Schlüssel aus der Bindung ändern tabzu down, backspacezu up, (was für xev Berichte) ctrl+ alt+ left/ rightzum Umschalten zwischen Arbeitsbereichen.

Danke für jede Hilfe!

user223544
quelle
Haben Sie die Anleitung für Mäuse unter help.ubuntu.com/community/ManyButtonsMouseHowto gelesen ?
Ubfan1
1
Danke für den Tipp ubfan1, xinput get-button-map gibt mir 13 Buttons. Testbericht für xev und xinput nur Tasten 1-7. Ich habe versucht, die Tasten 8-13 mit xinput set-button-map und xbindkeys from link neu zuzuordnen , aber nichts hat sich geändert. Drücken Sie die Seitentaste, und drücken Sie die Taste 133 (Super). Streichen Sie die Taste 22 (Rücktaste) nach oben. Streichen Sie die Taste 23 (Tabulator) nach unten.
user223544

Antworten:

5

Ich habe mir gerade eines gekauft und festgestellt, dass das Folgende perfekt für mich funktioniert.

  1. Öffne dconf-editor ( sudo apt-get install dconf-editorfalls noch nicht installiert).
  2. Navigieren Sie zu org -> gnome -> desktop -> wm -> keybindings.
  3. Ändern Sie den Wert für Wechseln zum Arbeitsbereich nach unten in

    ['<Control><Alt>Down', '<Primary><Super>Tab', '<Control><Super>Tab']

    und der Wert des Wechsels zum Arbeitsbereich bis zu

    ['<Control><Alt>Up', '<Primary><Super>BackSpace', '<Control><Super>Backspace']

Axel David Ingolfsson
quelle
Diese Lösung funktioniert zuverlässiger als die Lösung, die ich mit xbindkeys gefunden habe. Der einzige Nachteil im Vergleich zu xbindkeys ist, dass die xbindkeys-Lösung anscheinend nur die Maustastenereignisse erfasst, während diese Lösung auch funktioniert, wenn die Tastaturtasten verwendet werden. Ungeachtet dessen macht die Zuverlässigkeit dieser Lösung sie zur besseren Lösung.
user223544
2

Da die Microsoft Sculpt Comfort Mouse keine Mausklicks für die Super- und Swipe-Gesten registriert, sondern Tastaturtastendrücke registriert, habe ich die Pakete 'xautomation' und 'xbindkeys' verwendet, um auf diese Tastendrücke zu warten und Ctrl+ Alt+ zu senden Right/ Leftum zwischen Arbeitsbereichen zu wechseln. Es ist keine ideale Lösung, aber es funktioniert wie 8 von 10 Mal.

#Move to left workspace
"xte 'keydown Control_L' 'keydown Alt_L' 'usleep 100' 'key Left' 'keyup Control_L' 'keyup Alt_L' 'keyup Left'"
   m:0x4+mod4+m:0x0+c:23
   #Control_L+Super_L+Tab

#Move to right workspace
"xte 'keydown Control_L' 'keydown Alt_L' 'usleep 100' 'key Right' 'keyup Control_L' 'keyup Alt_L' 'keyup Right'"
   m:0x4+mod4+m:0x0+c:22
   #Control_L+Super_L+Backspace

Was dieses xbindkeys-Skript tut, ist, dass es auf die Tastendrücke hört, die die Mausbewegungen nach oben und nach unten an den Computer senden. Bei Erkennung sendet xautomation den standardmäßigen Tastendruck zum Verschieben des Desktops ( control+ alt+ left/) right.

Die Wischgeste auf der Maus sendet den Tastendruck von left control+ left super+ backspace. Die Wischgeste auf der Maus sendet den Tastendruck left control+ left super+ tab. m: 0x4 + mod4 + m: 0x0 + c22 ist die tatsächliche Tastenkombination, die von xbindkeys erkannt wird.

Ich werde ein bisschen mehr damit herumspielen, um zu sehen, ob ich die Effizienz verbessern kann, aber dies erledigt im Moment den Job. Ich hoffe nur , das tabund backspacedass die Maus gibt keine Schraube nicht mit Arbeit , die ich mache.

user223544
quelle
1
Können Sie erklären, wie die Lösung funktioniert? Control_L+Super_L+TabSendet die Maus (Woher kommen die Control_L + Super_L?) Oder stimmen Sie mit den Maustasten überein m:0x4+mod4+m:0x0+c:23(Sie scheinen zu sagen, dass in der Frage keine Mausereignisse generiert wurden)?
Volker Siegel
Ich habe meine Lösung bearbeitet, um zu erklären, woher Control_L + Super_L kommen. Ich habe auch den Zweck von m: 0x0 + mod4 + m: 0x0 + c: 23 erklärt.
user223544
0

Ich wollte dieselben Schaltflächen zuordnen, um in beiden Richtungen durch die Registerkarten in Firefox zu navigieren. Ich benutze xbindkeys und xmacro. Es funktioniert ziemlich gut!

.xbindkeysrc

#Thumb down
"echo 'KeyStrPress Control_L KeyStrPress Tab KeyStrRelease Control_L KeyStrRelease Tab'|xmacroplay :0"
   Control+Mod4+Tab

#Thumb up
"echo 'KeyStrPress Control_L KeyStrPress Shift_L KeyStrPress ISO_Left_Tab KeyStrRelease Control_L KeyStrRelease Shift_L KeyStrRelease ISO_Left_Tab' |xmacroplay :0"
   Control+Mod4+BackSpace
user3229974
quelle