Jak powiązać przyciski myszy z klawiszami?

19

Mam mysz laserową Logitech MX400, która ma 5 przycisków + 4 do przewijania w pionie / poziomie. Chciałbym, żeby to było ustawione, więc zamiast przewijania w poziomie naciśnięcie w prawo na kółku przewijania wyśle Ctrl+, Taba w lewo wyśle Ctrl+ Shift+ Tab, co pozwoli mi na przełączanie kart w przeglądarkach.

Byłoby również miło, gdybym mógł zmienić przypisanie środkowego przycisku do jednego z boku, ponieważ naprawdę trudno go nacisnąć.

Kolejną korzyścią byłoby napisanie skryptu, który pozwoli mi zdefiniować, które przyciski będą działać w zależności od tego, które okno jest aktualnie aktywne.

Próbowałem użyć, xmodmapale widziałem tylko, jak zmienić kolejność przycisków, a nie pozwolić, aby wysyłały kluczowe sygnały.

Z góry dziękuję.


Mapa przycisków (za pomocą xev):

Left        1
Middle      2
Right       3
ScrollUp    4
ScrollDown  5
ScrollLeft  6
ScrollRight 7
Backward    8
Forward     9
Callum Rogers
źródło

Odpowiedzi:

18

W xbindkeys i XTE może pomóc.

Na przykład mój plik .xbindkeysrc wygląda następująco:

# 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
Łukasz
źródło
To fantastyczne i rozszerzalne, wielkie dzięki
Callum Rogers
1
Aby uzyskać xte na Ubuntu 16.x, musisz zainstalować xautomation z apt .
1111161171159459134,
To nie działa tak, jak lubię, ponieważ nie działa tak samo, jeśli przytrzymam przycisk. Moja stara mysz miała przycisk, który umożliwia swobodne obracanie kółka przewijania, co jest świetne, jeśli chcę po prostu zacząć szybko poruszać się i przewijać daleko. Ale mój nowy tego nie ma, więc powiązałem dwa przyciski z boku (myślę, że są zaprojektowane jako przyciski Wstecz / Dalej do przeglądania stron internetowych) do klawiszy PgUp / PgDn. Ale muszę je naciskać wielokrotnie, jeśli chcę przewijać; Nie mogę ich po prostu przytrzymać. Jak sprawić, by przytrzymywał klucz tak długo, jak długo przytrzymuję przycisk?
flarn2006
5

Dziękujemy wszystkim za rozwiązanie. Oto bardziej niezawodny / połączony przewodnik (sporządzony na Xubuntu 18.04).

  1. Otwórz terminal (np. Xterm / terminal / terminator), stań się rootem ( sudo su -) lub użyj sudo przed poleceniem:

    apt install xbindkeys xautomation
  2. Sprawdź mapowanie przycisków za pomocą xev, do tego nie potrzebujesz uprawnień roota, więc wyjdź z sesji roota (za pomocą exit) lub otwórz inny terminal jako użytkownik.

    xev | grep button
  3. Pojawi się małe okno. Musisz przesunąć mysz do tego okna i nacisnąć przycisk, który chcesz ponownie przypisać. Przykładowy wynik w terminalu to:

    state 0x0, button 8, same_screen YES

    To jest drugi przycisk myszy na mojej stronie, którego chcę użyć jako PAGE_DOWN.

    state 0x0, button 9, same_screen YES

    To pierwszy boczny przycisk (tak, kolejność jest odwrócona), którego chcę użyć jako PAGE_UP.

  4. Gdy masz wszystkie przyciski, które chcesz ponownie przypisać, możesz zamknąć małe okno xev. Otwórz swój ulubiony edytor (na przykład gedit / vi / nano) i edytuj plik konfiguracyjny.

    vi .xbindkeysrc
  5. Jeśli masz już jakąś zawartość w pliku, sprawdź, czy istnieje już podobne powiązanie (mało prawdopodobne, nie domyślnie) i dodaj na końcu.

    #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

    Uwaga: potrzebujesz dwóch wpisów, jednego dla naciśnięcia przycisku i jednego dla wydania.

  6. Przyciski 8 + 9 zostaną przypisane do klawiszy „Dalej” (czyli PAGE_DOWN) i „Prior” (PAGE_UP). Jeśli chcesz zmapować różne klucze, możesz znaleźć symbol klucza za pomocą xev.

    xev | grep keysym
  7. Tak jak poprzednio, uruchom go w terminalu, przesuń mysz do małego okna i naciśnij żądany klawisz.

    state 0x0, keycode 117 (keysym 0xff56, Next), same_screen YES,
  8. Zapisz i zabij xbindings.

    killall xbindkeys ; xbindkeys

Możesz teraz korzystać z dodatkowych bocznych przycisków myszy. Ustawienie zostanie załadowane automatycznie przy następnym uruchomieniu / logowaniu. Potrzebujesz killall [...]polecenia z góry tylko po zmianie ustawień.

malasa
źródło