Wyłączanie „wstecz” dla trackballa Logitech

9

Mam trackball Marmurowa mysz Logitech z czterema przyciskami:

wprowadź opis zdjęcia tutaj

Korzystając z instrukcji tutaj , 50-marblemouse.confskonfigurowałem (xorg.conf), więc przytrzymanie przycisku „wstecz” pozwala mi przewijać:

Section "InputClass"
        Identifier  "Marble Mouse"
        MatchProduct "Logitech USB Trackball"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
        Option "EmulateWheel" "true"
        Option "EmulateWheelButton" "8"
EndSection

Czasami jednak „trzymaj” rejestruje się jako kliknięcie „wstecz”, co jest bardzo denerwujące, gdy przeglądam stronę internetową. Czy mogę w jakikolwiek sposób przewinąć przycisk, ale wyłączyć pojedyncze kliknięcie?

Zwykłym obejściem wydaje się być użycie przycisku „do przodu” do przewijania, ponieważ kliknięcia na nim są w większości nieszkodliwe, ale uważam, że kliknięcie tego palcem serdecznym jest znacznie bardziej niezręczne niż naciśnięcie przycisku wstecz.

lambshaanxy
źródło
Czy kiedykolwiek to rozwiązałeś?
Revetahw mówi Przywróć Monikę
Nie ma za co. Zobaczmy, czy to coś robi, wiele pytań pozostaje bez odpowiedzi.
Revetahw mówi Przywróć Monikę
Czy któraś z odpowiedzi pomogła ci? Muszę przyznać nagrodę lub pozwolić jej odejść.
Revetahw mówi: Przywróć Monikę
@Fiksdal W tym tygodniu podróżuję i nie mam dostępu do pulpitu, więc nie mogłem ich wypróbować ... Wygląda jednak najbardziej obiecująco.
lambshaanxy
W porządku. Nie ma problemu.
Revetahw mówi: Przywróć Monikę

Odpowiedzi:

2

Myślę, że opcją, której szukasz, jest ButtonMapping. Miałem podobną irytującą funkcję za pomocą mojej myszy ( https://www.kensington.com/en/no/4493/k72327eu/slimblade-trackball ), więc zastanowiłem się nad tym jakiś czas temu.

Opcja „EmulateWheelButton” nadal powinna działać, nawet jeśli wyłączysz przycisk lub ponownie przypiszesz mapowanie ...

Teraz przetestowałem to tylko z xinput na evdev. O wiele szybsze jest wypróbowanie rzeczy za pomocą xinput, a następnie możesz po prostu dodać skrypt do „Aplikacji startowych” zamiast modyfikować / etc / X11 / i ponownie uruchamiać X w kółko.

To powinno być wszystko, czego potrzebujesz w xorg.d / mouse.conf (skomentowane linie są tym, co powinno być potrzebne, jeśli nie chcesz używać skryptu logowania, aby to zrobić na użytkownika), chociaż może nie być to potrzebne w wszystko, jeśli używasz xinput:

Section "InputDevice"
    Identifier  "Configured Mouse"
    Driver    "evdev"
    Option    "Device"                "/dev/input/mice"
    Option    "Protocol"              "auto"
    #Option    "EmulateWheel"          "1"
    #Option    "EmulateWheelButton"    "8"
    #Option    "ButtonMapping"        "1 2 3 4 5 6 7 0 9 10 11 12"
EndSection

Oto, co zrobiłem, aby znaleźć moje rozwiązanie (oczywiście zastąp moje urządzenie swoim urządzeniem w następujących poleceniach):

Pokaż urządzenia:

$ xinput list
Virtual core pointer                        id=2    [master pointer  (3)]
  ↳ Virtual core XTEST pointer                  id=4    [slave  pointer  (2)]
  ↳ ELAN Touchscreen                            id=11   [slave  pointer  (2)]
  ↳ SynPS/2 Synaptics TouchPad                  id=13   [slave  pointer  (2)]
  ↳ Kensington Kensington Slimblade Trackball   id=18   [slave  pointer  (2)]

Zobacz, jakie właściwości są obsługiwane dla tego urządzenia:

$ xinput list-props "Kensington Kensington Slimblade Trackball"
Device 'Kensington Kensington Slimblade Trackball':
    Device Enabled (142):        1
    Coordinate Transformation Matrix (144):        1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (273):        0
    Device Accel Constant Deceleration (274):        1.000000
    Device Accel Adaptive Deceleration (275):        1.000000
    Device Accel Velocity Scaling (276):        10.000000
    Device Product ID (260):        1149, 8257
    Device Node (261):        "/dev/input/event17"
    Evdev Axis Inversion (277):        0, 0
    Evdev Axes Swap (279):        0
    Axis Labels (280):        "Rel X" (152), "Rel Y" (153), "Rel Vert Wheel" (573)
    Button Labels (281):        "Button Left" (145), "Button Middle" (146), "Button Right" (147), "Button Wheel Up" (148), "Button Wheel Down" (149), "Button Horiz Wheel Left" (150), "Button Horiz Wheel Right" (151), "Button Side" (679), "Button Unknown" (263), "Button Unknown" (263), "Button Unknown" (263), "Button Unknown" (263)
    Evdev Scrolling Distance (282):        1, 1, 1
    Evdev Middle Button Emulation (283):        0
    Evdev Middle Button Timeout (284):        50
    Evdev Third Button Emulation (285):        0
    Evdev Third Button Emulation Timeout (286):        1000
    Evdev Third Button Emulation Button (287):        3
    Evdev Third Button Emulation Threshold (288):        20
    Evdev Wheel Emulation (289):        1
    Evdev Wheel Emulation Axes (290):        0, 0, 4, 5
    Evdev Wheel Emulation Inertia (291):        10
    Evdev Wheel Emulation Timeout (292):        200
    Evdev Wheel Emulation Button (293):        8
    Evdev Drag Lock Buttons (294):        0

A teraz spróbujmy:

$ xinput set-button-map "Kensington Kensington Slimblade Trackball" 1 2 3 4 5 6 7 0 9 10 11 12
$ xinput set-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation" 1
$ xinput set-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Button" 8

Teraz mój prawy górny przycisk działa tylko jako automatyczne przewijanie zamiast denerwującego zachowania z tyłu!

J Cole
źródło
1

Oto moja konfiguracja tego bardzo dobrego trackballa na Ubuntu w 2009 roku. Mam nadzieję, że to nadal działa, być może będziesz miał kilka różnic w stosunku do „Driver” i „Device”. Jednak opcje przycisków powinny być takie same.

Code: Section "InputDevice"
Identifier    "Marble Mouse"
Driver        "mouse"
Option        "CorePointer"
Option        "Device"   "/dev/input/mice"
Option        "Protocol"        "ExplorerPS/2"
Option        "Emulate3Buttons"    "true"
Option        "Buttons"        "9"
Option        "EmulateWheel"        "1"
Option        "EmulateWheelButton"    "8"
Option        "YAxisMapping"        "4 5"
Option        "XAxisMapping"        "6 7"
EndSection

Więc mamy:

  • Trzeci przycisk znajduje się na „Forward” (9), co jest bardzo wygodne.
  • koło emulacji jest włączone „Powrót” (8)
  • zwróć uwagę, że zdefiniowałem zarówno oś X, jak i Y, co oznacza, że ​​naciskając kciukiem przycisk „Wstecz”, możesz przewijać piłkę w obu kierunkach, tak jak w przypadku touchpada.
ttoine
źródło
0

Korzystając z „Przykładowej konfiguracji nr 3, zignoruj ​​instrukcje„ Wstecz ”przycisku podanego w łączu , możesz ponownie przypisać przycisk Wstecz, aby był bardziej nieszkodliwy, na przykład kliknięcie prawym przyciskiem myszy.

Nie wiem jednak dokładnie, jak to połączyć z powyższym plikiem konfiguracyjnym.

szkarłatny
źródło