Obsługa dodatkowych przycisków myszki

Obecnie rozsądnym minimum, jeżeli chodzi o możliwości myszki, są trzy przyciski i jedna rolka. Mimo, iż jestem gorącym zwolennikiem maksymalnego wykorzystywania klawiatury, to jednak klikam całkiem dużo. A skoro już dłoń tak często leży na myszce, to czemu by nie skusić się na dodatkowe przyciski na gryzoniu? Z takim nastawieniem zakupiłem mysz Logitech MX400, która jest wyposażona w tylt (kółko przechylane na boki) i dwa przyciski na lewym boku, co łącznie daje cztery dodatkowe przyciski. Oczywiście, pojawił się problem, jak to skonfigurować pod Linuksem…

Tu zaczęły się boje ze znienawidzonym przeze mnie xorg.conf, kombinowanie ze sterownikiem evdev (który na Debianie zdołał przecież opanować tylt w jakimś starszym modelu Logitecha) i inne tego typu historie. Koniec końców stanęło na tym, że tylt jednak nie działał, a boczne przyciski pracowały tylko w Firefoksie, niejako same z siebie. Mogłem więc wygodnie skakać po historii stron, na czym mi bardzo zależało, ale pozostawał pewien niedosyt związany z niewykorzystanymi możliwościami, nietaniej przecież, myszki. Rzutem na taśmę zainstalowałem program btnx, który zdawał się wykrywać wszystkie przyciski, ale daemon nie chciał wystartować, więc nic z tego nie wynikało. W końcu postanowiłem odłożyć sprawę na później.

Niedawno zaktualizowałem system, po czym zauważyłem dziwne zachowanie myszy. Okazało się, że btnx wreszcie zaczął działać. Co prawda, program wciąż sprawia sporo kłopotów, gdy się chce obsłużyć kilka myszek, ale poza tym jest już całkiem nieźle.

A z czym to się je? Najpierw instalujemy z AUR pakiety btnx i btnx-config, po czym uruchamiamy ten drugi. W Current configuration klikamy Detect mouse & buttons, a w nowym oknie Press to start mouse detection. Przez 5 sekund nie ruszamy myszką, która powinna zostać wykryta przez aplikację. Przechodzimy dalej, klikając Forward. Teraz rozpoczynamy procedurę rejestracji przycisków:

  1. Wybieramy Press to start button detection.
  2. Naciskamy kilkukrotnie wybrany przycisk na gryzoniu.
  3. Nadajemy mu nazwę.
  4. Dodajemy go do listy (Add, nie OK!).

Kroki te powtarzamy dla wszystkich dodatkowych przycisków. Kończymy za pomocą OK. Teraz w głównym oknie programu przechodzimy na zakładkę Buttons, włączamy wybrane przyciski (Enabled) i przypisujemy im skróty klawiaturowe (lub inne funkcje, ja jednak poprzestałem na skrótach). Dla przykładu: jeżeli chcemy używać jakichś przycisków w roli funkcji Wstecz i Dalej w Firefoksie czy Nautilusie, należy wybrać Keycode: KEY_LEFT (lub KEY_RIGHT, rzecz jasna) i Modifier key 1: KEY_LEFTALT.

Na koniec klikamy Restart btnx i liczymy na to, że zadziała… Jeżeli jednak nie zadziała, można podejrzeć komunikaty błędu ręcznie startując daemona:

# /etc/rc.d/btnx start

Niestety, problemów może być wiele. W szczególności, jeżeli dodamy drugą myszkę, to btnx nie będzie zbyt chętny automatycznie się między nimi przełączać. Będzie trzeba ręcznie zmieniać priorytety profili, a czasem nawet dodatkowo dokonywać powtórnej detekcji myszy (już bez przypisywania przycisków). Na szczęście raczej niewiele osób na co dzień używa kilku „multimedialnych” myszy.

Jeżeli będziemy mieli szczęście i mysz zacznie ładnie pracować, dodajemy btnx do listy daemonów w /etc/rc.conf i gotowe!

Na koniec dorzucę fragment mojego /etc/X11/xorg.conf, gdyż zapewne nie jest on bez wpływu na działanie btnx:

Section "InputDevice"
        Identifier      "USB Mouse"
        Driver          "mouse"
        Option          "Device"                "/dev/input/mice"
        Option          "SendCoreEvents"        "true"
        Option          "Protocol"              "auto"
        Option          "ZAxisMapping"          "4 5"
        Option          "Buttons"               "5"
EndSection

Komentarzy: 2 do „Obsługa dodatkowych przycisków myszki“

  1. Livio komentuje:

    Działa na takiej zasadzie jak imwheel? Per-program :) ?

  2. vmario komentuje:

    @Livio: Nie, btnx działa globalnie: jeżeli przypiszesz do jakiegoś przycisku skrót klawiaturowy, to będzie on generowany niezależnie od tego, który program ma focus. Ponadto nie ma chyba możliwości tworzyć oddzielnych ustawień dla użytkowników (btnx-config działa dopiero po uzyskaniu uprawnień roota).

Dodawanie komentarzy

XHTML: Możesz używać tagów: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">