Zmniejsz czułość myszy poniżej standardowego limitu

42

Mam mysz USB podłączoną do mojego notebooka Ubuntu. Ta mysz jest (niestety) bardzo wrażliwa, dlatego czasami trudno jest trafić małe ikony wskaźnikiem myszy. To jest naprawdę problem sprzętowy, nie jest to błąd i nie jest to wina Ubuntu / gnome. Mimo to bardzo chciałbym rozwiązać ten problem za pomocą oprogramowania (rozwiązanie sprzętowe oznaczałoby zakup nowej myszy).

W systemie Windows, jeśli ustawiłem czułość na naprawdę niską, było to wystarczająco wygodne. W Ubuntu nawet najniższa dostępna czułość i przyspieszenie (w menu System> Prerences> Mysz ) jest nadal frustrująca. Jak mogę go zmniejszyć poniżej domyślnego minimum?

Próbowałem xset, ale wygląda na to, że xset zajmuje się tylko przyspieszeniem i progiem, ale nie rzeczywistą czułością.

Malabarba
źródło
1
Gdzie mam umieścić te linie kodu?

Odpowiedzi:

55

Mam mysz Razer DeathAdder i podobnie jak w twoim przypadku czułość / przyspieszenie są zbyt wysokie, nawet jeśli ustawię je na najniższym poziomie w preferencjach myszy. Aby rozwiązać ten problem, użyłem polecenia xinput.

Najpierw będziesz potrzebować myszy Nazwa produktu i identyfikator:

xinput list
...
 Razer Razer DeathAdder                     id=8    [slave  pointer  (2)]
...

Następnie za pomocą tego polecenia ustawiasz stały poziom opóźnienia, który odpowiada Twoim potrzebom:

xinput set-prop 8 "Device Accel Constant Deceleration" 3
# 8 = DEVICE_ID
# 3 = LEVEL (factor) Higher = Slower.

Aby konfiguracja była trwała (i aby obejmowała cały system) , musisz edytować swoją xorg.conf ( /etc/X11/xorg.conf).

Section "InputClass"
   Identifier      "Razer"                    # Whatever you want.
   MatchProduct    "Razer Razer DeathAdder"   # Product name from xinput list.
   Option          "ConstantDeceleration" "3" # The same value as xinput.
EndSection

Po ponownym uruchomieniu komputer powinien mieć taki sam wynik jak polecenie xinput.

Daj mi znać, jeśli to pomoże.

JackTravis
źródło
Niesamowity! Zrezygnowałem z tego tygodnie temu. Dziękuję bardzo, to naprawdę pomaga.
Malabarba,
5
Bah: „właściwość„ Device Accel Constant Deceleration ”nie istnieje, musisz określić jej typ i format
mlissner
1
Nadal działa, nawet dla Linux Mint 17! Dzięki :)
Richard de Wit
3
jeśli nie mam xorg.confpliku, czy powinienem go utworzyć?
Ciprian Tomoiagă,
1
@mlissner wypróbuj inny identyfikator divice, mój ma 3 wskaźniki i musiałem użyć 10
flcoder
6

Ubuntu 17.04

Postępuj zgodnie z instrukcjami poniżej, ale zmień:

xinput set-prop 10 "Device Accel Constant Deceleration" 3

Do:

xinput set-prop 10 "libinput Accel Speed" -0.4

Dziękuję @tambre. Nie jestem pewien, czy jest to tak idealne rozwiązanie jak stare ustawienie, ale jest całkiem blisko.

xset m 3

To nadal działa całkiem dobrze. Musisz dowiedzieć się, jak zapisać, aby było to ustawienie domyślne przy ponownym uruchomieniu.

Ubuntu 16.04

Odpowiedź @JackTravis była niezwykle pomocna, ale myślę, że warto ją zaktualizować do wersji 16.04, ponieważ plik xorg.conf został przeniesiony i podzielony na wiele plików. Przed napisaniem tej odpowiedzi, próbowałem użyciu xseti bawił się z xinputustawieniami na chwilę przed podjęciem decyzji, że JackTravis za xinput ConstantDeceleration 3ustawienie był najlepszy zarówno dla mojego Logitech M510 na pulpicie, a niektóre starsze przewodowa mysz na moim laptopie.

1. Lista myszy

$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech M510                             id=10   [slave  pointer  (2)]
⎜   ↳ Synaptics Inc. Composite TouchPad / TrackPoint    id=13   [slave  pointer  (2)]
...

Moja mysz była Logitech M510, id=10więc użyję tego w tym przykładzie. Konieczne będzie zastąpienie go dowolną nazwą myszy. Teraz użyj, xinput set-propaby wypróbować różne ustawienia, dopóki mysz nie poruszy się dokładnie tak, jak chcesz. Poniższy 10opis odpowiada opcji „ id=10Mysz” w moim systemie. Prawdopodobnie będziesz musiał to zmienić.

2. Tymczasowo zmień ustawienia

$ xinput set-prop 10 "Device Accel Constant Deceleration" 3

Jeśli jesteś ciekawy, jakie inne ustawienia wpływają na twoje urządzenie, spróbuj

$ xinput --list-props 10

Aby wyczyścić ustawienia po tym, jak naprawdę je pomieszałem, wystarczyło odłączyć i ponownie podłączyć mysz.

3. Zapisz nowe ustawienie na stałe

Jeśli podoba Ci się ConstantDeceleration of 3, musisz dodać plik xorg.conf w nowy sposób Ubuntu 16.04: dodając nowy plik w /usr/share/X11/xorg.conf.d/ Będziesz chciał zmienić Logitech M510i logitech-m510nazwę pliku pasującą do myszy. Myślę, że 60-na początku nazwy pliku jest priorytet, z jakim te pliki są ładowane. Następujące jedno-liniowe polecenie powłoki jest tym, co umieszczam w moim machineSetup.shpliku w Dropbox, dzięki czemu mogę szybko dostosować nowy komputer dokładnie tak, jak lubię w ciągu kilku minut od nowej instalacji:

sudo sh -c "echo 'Section \"InputClass\"\n\
   Identifier      \"My awesome new mouse\"\n\
   MatchProduct    \"Logitech M510\"\n\
   Option          \"ConstantDeceleration\" \"3\"\n\
EndSection\n' > /usr/share/X11/xorg.conf.d/60-logitech-m510.conf"

LUB , jeśli chcesz to zrobić w GUI, otwórz edytor jako root, a następnie wklej i edytuj następujące elementy w/usr/share/X11/xorg.conf.d/60-<whatever>.conf

Section "InputClass"
   Identifier      "My Awesome Blue Mouse"
   MatchProduct    "Logitech M510"
   Option          "ConstantDeceleration" "3"
EndSection

4. Uruchom ponownie

Otóż ​​to. Po prostu uruchom ponownie i sprawdź, czy nowe ustawienia zostały zastosowane.

GlenPeterson
źródło
1
Niestety otrzymuję następujące informacje: property 'Device Accel Constant Deceleration' doesn't exist, you need to specify its type and formatpodczas próby wykonania polecenia w drugim kroku (z moim identyfikatorem urządzenia).
tambre
@tambre zgaduję, że nie użyłeś prawidłowego identyfikatora numerycznego określonego w kroku 1, gdy zrobiłeś krok 2. Jeśli tak nie jest, prawdopodobnie nie będę wiedział wystarczająco dużo, aby ci pomóc.
GlenPeterson
1
Po wylistowaniu właściwości Device Accel Constant Decelerationnie istnieje. Wygląda na to, że używa libinput jako sterownika, więc musiałem zmodyfikować wartość libinput Accel Speed, której prawidłowe wartości wynoszą od -1 do 1.
tambre
1
To działało dla mnie, ale moja mysz („Razer Razer DeathAdder 2013”) pokazywała się wielokrotnie pod Virtual core pointer(dwukrotnie) i Virtual core keyboard(raz). Tylko pointerurządzenia miały Device Accel Constant Deceleration, więc musiałem upewnić się, że wybrałem jedno z tych urządzeń podczas testowania xinput. xorg.conf.dPlik nadal działało idealnie.
Alex
2

Późna odpowiedź, ale myślę, że warto to opublikować:

Ponieważ mówimy tutaj o myszy do grania. Lepiej jest całkowicie wyłączyć przyspieszenie myszy (przydatne dla graczy FPS itp.). Zaoszczędź kilka cykli procesora, nie wykorzystując go do obliczenia przyspieszenia myszy i prawdopodobnie również bardziej dokładnych odczytów (zależy lub czujnik sprzętowy myszy ma wbudowaną ekstrapolację).

xinput set-prop <mousedevice_nr> "Device Accel Profile" -1

lub

Section "InputClass"
   Identifier      "Razer"
   MatchProduct    "Razer DeathAdder"         # Product name from xinput list.
   Option          "AccelerationProfile" "-1" # Turn mouse accel off saving CPU cycles
EndSection

Źródło

użytkownik165961
źródło
Mam to: X Error of failed request: BadValue (integer parameter out of range for operation).
MasterOfBinary
świetnie, to było niesamowite, dziękuję. Mam problemy z moim urządzeniem peryferyjnym Kingsis Evoluent VerticalMouse 3. Ma ustawienie DPI u dołu myszy i najwyższe ustawienia DPI - nawet najniższe ustawienia czułości są wciąż zbyt wysokie.
anon58192932
2

Niewielka modyfikacja odpowiedzi Glena, działa dla mojej myszy Logitech i podwaja „spowolnienie” z 1 do 2.

Dodaj do ~ / .profile (jak wskazano w komentarzu) (lub .bashrc, ale musisz uruchomić terminal, aby zmiana mogła nastąpić)

MOUSE_SLOWNESS=2
MOUSE_ID=`xinput list | grep Mouse | awk '{print $(NF-3)}' | cut -c4-5`
xinput set-prop $MOUSE_ID "Device Accel Constant Deceleration" $MOUSE_SLOWNESS
lahjaton_j
źródło
1
Myślę, że lepiej jest dodać te linie na końcu .profilezamiast .bashrc. .profilejest uruchamiany tylko przez interaktywne powłoki logowania, tymczasem .bashrcbędzie działać przy każdym uruchomieniu bashpowłoki. Zobacz tę odpowiedź, aby uzyskać więcej informacji.
chus
technicznie .bash_aliasesdziała również, ponieważ standardowy .bashrcplik ubuntu ładuje go poprawnie?
anon58192932
1

Jeśli korzystasz z portu PS2, ruch myszy jest znacznie wolniejszy dla tej samej rozdzielczości myszy.

W przypadku myszy spróbuj użyć konwertera USB na PS2 i umieść mysz w porcie PS2.

Edytować:

Znalazłem xorg.confdziałające rozwiązanie:

Section "InputDevice"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Sensitivity" "0.2"
EndSection

Gdy czułość 1 jest wartością domyślną, a wartość 0,2 zmniejsza ją pięć razy.

iugamarianin
źródło
To kreatywny pomysł. Myślę, że mam w domu konwerter, więc wypróbuję go jutro.
Malabarba
Znalazłem działające rozwiązanie xorg.conf. Edytowana odpowiedź.
iugamarian
1
Nie działa to jednak na laptopach.
Daniel Silva
Gdzie jest xorg.conf?
Zielony