Skonfiguruj prędkość myszy (nie przyspieszenie wskaźnika!)

30

Czy istnieje sposób na zwiększenie prędkości myszy w KDE4? Nie chcę żadnego przyspieszenia wskaźnika, chcę zmienić prędkość myszy.

Edycja : Niestety edytowanie xorg.conf nie jest dla mnie opcją, ponieważ chcę, aby użytkownicy mogli sami konfigurować prędkość myszy, a polityka firmy odmawia użytkownikom uprawnień do zmiany xorg.conf.

André
źródło
2
jaka jest różnica między tymi dwoma?
Web-E,
3
@ Web-E Przyspieszenie to szybkość, z jaką prędkość zmienia się w czasie
Oleh Prypin
@ Web-E to dwie różne rzeczy.
Bruno Pereira

Odpowiedzi:

35

KDE nie wbudowało jeszcze tego w swoje centrum sterowania, ale możesz użyć xinput z wiersza poleceń. Najpierw biegnij, xinput listaby znaleźć numer urządzenia myszy:

$ xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=10   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=9    [slave  keyboard (3)]

Na moim laptopie chcę mieć identyfikator urządzenia 10 (SynPS / 2 Synaptics TouchPad). W twoim systemie będziesz musiał zdecydować, które urządzenie jest właściwe. Następnie uruchom, xinput list-props <your device id>aby zobaczyć bieżące ustawienia tego urządzenia:

$ xinput list-props 10
Device 'SynPS/2 Synaptics TouchPad':
    Device Enabled (144):   1
    Device Accel Profile (266):     1
    Device Accel Constant Deceleration (267):       2.500000
    Device Accel Adaptive Deceleration (268):       1.000000
    Device Accel Velocity Scaling (269):    12.500000
  [ many more settings omitted ]

Właściwość, która Cię interesuje, to „Device Accel Constant Deceleration (267)”. Aby spowolnić kursor, wartość należy zwiększyć, uruchamiając xinput set-prop <your device id> <property id> <value>:

$ xinput set-prop 10 267 5.0

W tym przykładzie wartość została zwiększona z 2,5 do 5,0, a mysz porusza się z połową prędkości.

Luke
źródło
5
Po prostu nie możesz ustawić tego poniżej 1.0, co w moim przypadku jest wciąż zbyt wolne.
pong
2
Nie ma problemu z list-props, ale set-proppowoduje: X Błąd nieudanego żądania: BadAccess (odmowa dostępu do prywatnego zasobu) X.Org X Server 1.16.0, na pulpicie Unity. W przypadku X.Org X Server 1.9.3.90 identyfikator myszy to 6, a numer nieruchomości 233.
Incnis Mrsi
2
Jeszcze lepiej: xinput set-prop 'SynPS / 2 Synaptics TouchPad' 'Device Accel Constant Deceleration' 2.5
Simon Thum
2
czy to ustawienie utrzymuje się po ponownym uruchomieniu? jeśli nie, czy możemy to zrobić?
Ciprian Tomoiagă
3
Co zrobić, jeśli „Stałe przyspieszanie przyspieszania urządzenia” nie jest nawet dostępną opcją?
DaVince
14

Terminologia ustawień myszy w systemie Linux (Xorg) różni się nieco od świata Windows.

Istnieją trzy ważne ustawienia:

  • threshold - Spust przyspieszenia
  • acceleration - Prędkość po osiągnięciu progu
  • resolution - Prędkość"

Te ustawienia są niezależne od środowiska pulpitu. Są to ustawienia czystego X. To zawsze działa. Zobacz także sekcję dotyczącą myszy,xset aby znaleźć naprawdę niezależny sposób zmiany tych ustawień.

Menedżer ustawień Unity wydaje się zmieniać nazwę na thresholdwrażliwość. Ale kiedy mówisz o KDE, nie powinno to mieć znaczenia.

Tylko thresholdi accelerationmoże być zmieniony przez użytkownika. resolutionTo ustawienie, aby być w xorg.conf. Ale zwykle dwa pierwsze ustawienia są wystarczające dla większości użytkowników.

Linuxreviews ma wyjaśnienie tych wartości.

Zasadniczo: Mysz porusza się z prędkością podstawową (modyfikowalną za pomocą resolution). Jeśli mysz poruszy n pikseli (n = threshold) w krótkim czasie, wówczas prędkość podstawową mnoży się acceleration. Na przykład, jeśli chcesz całkowicie wyłączyć przyspieszenie, możesz ustawić próg na 0. Innymi słowy: jeśli mysz przesunie 0piksele w krótkim czasie, użyję base-speed * acceleration. Zatem próg 0daje stałą prędkość myszy.

Te dwie wartości dają bardzo drobiazgową kontrolę nad prędkością.

ekshuma
źródło
1
Parametrem, o którym mowa, jest rozdzielczość, której nie można modyfikować za pomocą xset.
Łukasz
Aby wyjaśnić, próg = 0 daje przyspieszenie wielomianowe w X, co wcale nie przypomina stałej prędkości. Skorzystaj z powyższego rozwiązania.
Simon Thum,
@ SimonThum, czy tak jest naprawdę? Pomyślałem również, że przyspieszenie powinno być liniowe (pomimo przejścia między prędkością podstawową a prędkością końcową = prędkość podstawowa * przyspieszenie). Czytałem to wiele razy w sekcjach komentarzy. Czy masz źródła potwierdzające twoje roszczenie?
daniel451
Nie rozumiem, dlaczego wszyscy obecnie oczekują przyspieszenia myszy, a rozdzielczość nie jest łatwo dostępna. Jedynym rozsądnym ustawieniem, w którym chcesz mieć wysoce precyzyjną mysz, jest wyłączenie przyspieszania i zmniejszenie (płaskiej) prędkości, ponieważ nowoczesne myszy laserowe mają szalone wysokie DPI, które jest odwzorowane przez system na szaloną wysoką prędkość. Ale nie chcę nasion, chcę precyzji - najlepiej subpikseli.
Prokop Hapala
13

Kroki zwiększania czułości myszy:

Najpierw wyświetl listę wszystkich urządzeń:

$ xinput list                                                               
⎡ Virtual core pointer                          id=2    [master pointer  (3)]                                 
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]                                 
⎜   ↳ PixArt USB Optical Mouse                  id=10   [slave  pointer  (2)]                                 
⎜   ↳ ETPS/2 Elantech Touchpad                  id=15   [slave  pointer  (2)]                                 
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]                                 
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]                                 
    ↳ Power Button                              id=6    [slave  keyboard (3)]                                 
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]                                 
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]                                 
    ↳ USB2.0 UVC 2M WebCam                      id=9    [slave  keyboard (3)]                                 
    ↳ Asus Laptop extra buttons                 id=13   [slave  keyboard (3)]                                 
    ↳ AT Translated Set 2 keyboard              id=14   [slave  keyboard (3)]                                 
    ↳   USB Keyboard                            id=11   [slave  keyboard (3)]                                 
    ↳   USB Keyboard                            id=12   [slave  keyboard (3)]   

W przykładzie widzimy, że identyfikator myszy to 10. Następnie wypisz jego właściwości:

$ xinput list-props 10
Device 'PixArt USB Optical Mouse':
        Device Enabled (140):   1
        Coordinate Transformation Matrix (142): 10.400000, 0.000000, 0.000000, 0.000000, 10.400000, 0.000000, 0.000000, 0.000000, 10.400000
        Device Accel Profile (265):     0
        Device Accel Constant Deceleration (266):       1.000000
        Device Accel Adaptive Deceleration (267):       1.000000
        Device Accel Velocity Scaling (268):    10.000000
        Device Product ID (260):        2362, 9488
        Device Node (261):      "/dev/input/event5"
        Evdev Axis Inversion (269):     0, 0
        Evdev Axes Swap (271):  0
        Axis Labels (272):      "Rel X" (150), "Rel Y" (151), "Rel Vert Wheel" (264)
        Button Labels (273):    "Button Left" (143), "Button Middle" (144), "Button Right" (145), "Button Wheel Up" (146), "Button Wheel Down" (147), "Button Horiz Wheel Left" (148), "Button Horiz Wheel Right" (149)
        Evdev Middle Button Emulation (274):    0
        Evdev Middle Button Timeout (275):      50
        Evdev Third Button Emulation (276):     0
        Evdev Third Button Emulation Timeout (277):     1000
        Evdev Third Button Emulation Button (278):      3
        Evdev Third Button Emulation Threshold (279):   20
        Evdev Wheel Emulation (280):    0
        Evdev Wheel Emulation Axes (281):       0, 0, 4, 5
        Evdev Wheel Emulation Inertia (282):    10
        Evdev Wheel Emulation Timeout (283):    200
        Evdev Wheel Emulation Button (284):     4
        Evdev Drag Lock Buttons (285):  0

«Matryca transformacji współrzędnych» jest dokładnie tym, czego chcemy. Pamiętaj, jego №142.

Zmieniając tę ​​właściwość, możemy zwiększyć prędkość wskaźnika. Te wartości są w rzeczywistości macierzą transformacji używaną do obliczania ruchu wskaźnika . Z linku:

Domyślnie CTM dla każdego urządzenia wejściowego w X jest macierzą tożsamości. Na przykład załóżmy, że dotykasz ekranu dotykowego w punkcie (400, 197) na ekranie:

⎡ 1 0 0 ⎤   ⎡ 400 ⎤   ⎡ 400 ⎤
⎜ 0 1 0 ⎥ · ⎜ 197 ⎥ = ⎜ 197 ⎥
⎣ 0 0 1 ⎦   ⎣  1  ⎦   ⎣  1  ⎦

Współrzędne X i Y zdarzenia urządzenia są wprowadzane do drugiej macierzy obliczeń. Wynik obliczeń polega na odwzorowaniu współrzędnych X i Y zdarzenia na ekran. Jak pokazano, macierz tożsamości odwzorowuje współrzędne urządzenia na współrzędne ekranu bez żadnych zmian.

Więc, co chcemy zrobić z matrycy - jest ustalenie wartości, które zgodnie z X i Y do jakiejkolwiek innej konkretnej wartości, a to byłoby zmienić szybkość wskaźnika. Przykład z mojego komputera:

$ xinput set-prop 10 142 2.400000, 0.000000, 0.000000, 0.000000, 2.400000, 0.000000, 0.000000, 0.000000, 1.000000

Jest xinput set-prop <device-id> <property-number> <property-values>. Zagraj w to, dopóki nie znajdziesz odpowiednich. Uwaga: nie zmieniaj ostatniej wartości macierzy. To był mój błąd, kiedy próbowałem go dostać do pracy - w tym przypadku po prostu nie zobaczysz żadnej różnicy.

Przynajmniej najnowsze wersje xinputpozwalają określać urządzenia i opcje według nazwy, więc ten przykład może również działać:

xinput set-prop 'PixArt USB Optical Mouse' 'Coordinate Transformation Matrix' 1.2 0 0 0 1.2 0 0 0 1

Te zmiany są aktywne tylko w bieżącej sesji, więc po wybraniu dobrej czułości należy zastosować ją na stałe, dodając ją xorg.conf(lub tworząc plik taki jak /etc/X11/xorg.conf.d/40-mouse-sensitivity.conf):

Section "InputClass"
    Identifier "PixArt USB Optical Mouse"
    MatchIsPointer "Yes"
    Option "TransformationMatrix" "1.2 0 0 0 1.2 0 0 0 1"
EndSection

Jeśli nie masz pewności, czy to działa, zmień to na dużą wartość, np. 5.0Zapisz plik i uruchom ponownie.

Podziękowania: Jestem wdzięczny Simonowi Thumowi z listy mailingowej Xorg, on był tym, który dał wskazówkę dotyczącą matrycy.

Cześć aniele
źródło
Najlepiej pozostawić macierz transformacji współrzędnych do pierwotnego celu, jakim jest „przekształcanie współrzędnych”, na przykład w przypadku orientacji ekranu lub pracy z ekranami dotykowymi itp. Znacznie prostszym rozwiązaniem jest na przykład dostosowanie stałego przyspieszenia urządzenia.
Kari Kääriäinen
2
@ KariKääriäinen jak inni zdezorientowani. Tak zwane „przyspieszenie wskaźnika” nie ma nic wspólnego z czułością myszy, pozwala jedynie przesunąć wskaźnik tak daleko, jak szybciej go poruszasz. Oznacza to, że jeśli przesuniesz mysz o tę samą odległość, ale z różnymi prędkościami, wskaźnik zostanie przesunięty na inną odległość. To dość niewygodne, musisz za każdym razem zwolnić, aby trafić w jakiś punkt. Ale zmiana macierzy transformacji pozwala w pewnym sensie naśladować zwiększoną czułość myszy. A przy okazji, szczególnie deceleration spowalnia prędkość.
Cześć Angel
1
Interesujące, ale ta metoda ma wadę: podczas korzystania z niej niektóre piksele są po prostu nieosiągalne. Aby było to bardziej oczywiste, spróbowałem xinput set-prop 11 138 40, 0, 0, 0, 40, 0, 0, 0, 1i potwierdziłem, że mysz osiągnęła tylko współrzędne oddalone o 40 pikseli. W rzeczywistym świecie prawdopodobnie użyłby tylko 2 lub 4 zamiast 40, ale nadal brakuje pikseli. Zdecydowałem się na inną metodę (użyj funkcji przyspieszenia jako stałego wzrostu prędkości), ponieważ nie ma tej wady.
Stéphane Gourichon
4
Jedyna poprawna odpowiedź.
MichalH
1
Od 2019 r. Nie ma już właściwości „Device Accel Constant Deceleration”, przynajmniej nie w moim przypadku. Macierz transformacji wciąż istnieje i można na nią oddziaływać z pożądanym efektem, chociaż to, co wskazał powyżej @ StéphaneGourichon, ma doskonały sens.
No
4

Chociaż nie mam jasności co do pytania tutaj, moja sugestia.

Dla KDE

Szybkie wyszukiwanie ujawnia, że ​​nie ma takiej opcji, aby zwiększyć prędkość myszy poniżej wartości progowej.

Niektórzy użytkownicy sugerują zmianę rozdzielczości myszy w /etc/X11/xorg.confpliku ( mouse InputDevice section) jak

Option "Resolution" "400"

Ale większość użytkowników powiedziała, że ​​to nie działa.

Możesz zwiększyć wartość progową, aby przyspieszenie nie rozpoczęło się, dopóki wartość progowa nie osiągnie. (Ustawianie w Mouse> Advanced Settings)

Powiązany post można znaleźć tutaj .

Dla jedności

  • Naciśnij Superklawisz (klawisz Windows).
  • Szukać mouse.
  • Wybierz Mouse And Touchpad
  • Teraz zmień czułość na wyższą wartość. Być może właśnie tego chcesz.

    ustawienia myszy

Web-E
źródło
2
Okej, właśnie tego szukam, ale twój zrzut ekranu pochodzi z Gnome, a moje pytanie dotyczy KDE4.
André
Przepraszamy za niepoprawne sprawdzenie pytania. Zaktualizowano
Web-E,
Wow, dzięki! Wygląda na to, że włożyłeś w to wiele wysiłku. Niestety, edycja pliku xorg.conf nie jest opcją, ponieważ chcę, aby użytkownicy mogli sami skonfigurować ustawienie „Rozdzielczość”, a polityka firmy odmawia użytkownikom uprawnień do zmiany pliku xorg.conf. Dodam to ograniczenie do oryginalnego komentarza, ale mimo to głosuję za nim.
André
3
O mój Boże. Możliwość ustawienia „rozdzielczości wskaźnika” tylko za pomocą pliku konfiguracyjnego (tzn. Nie interaktywnie) należy uznać za błąd. Ile razy użytkownik powinien ponownie uruchomić XServer, aby znaleźć odpowiednią rozdzielczość? Pięć? Dziesięć? To jest tak zabawne jak smutne…
Hi-Angel,
Właśnie zainstalowałem unity-control-center, ustawiłem czułość myszy na wysoką i to nie zadziałało.
Cześć Angel
2

Biorąc pod uwagę to, co powiedział powyższy post, znalazłem to rozwiązanie.

Faktem jest, że mysz porusza się ze stałą wielokrotnością prędkości podstawowej, gdzie wielokrotność jest ustawiana przez parametr „przyspieszenie”.

Jednak ten mnożnik jest stosowany tylko wtedy, gdy mysz porusza się szybciej niż prędkość „progowa” określona przez parametr „czułość”.

Powoduje to niezręczne odczucie „przyspieszenia”, gdy jeśli zaczniesz szybko poruszać myszą, zacznie ona przeskakiwać w sposób niekontrolowany, gdy przekroczy prędkość progową.

Więc co możesz zrobić, to ustawić „czułość” na 0, a tym samym ustawić próg na 0. To, co robi, polega na tym, że twoje przyspieszenie jest cały czas stosowane do prędkości myszy.

Wówczas prędkość myszy jest tylko wielokrotnością parametru „przyspieszenia”, a ponieważ jest to mnożenie liniowe, powinieneś mieć stałą prędkość proporcjonalną do parametru przyspieszenia. Bez poczucia przyspieszenia i skoków.

W skrócie: Ustaw czułość na 0. Ustaw parametr „przyspieszenie” tak, jakby to był „prędkość”

evan
źródło
Ta odpowiedź jest ogólną wersją zorientowanej na KDE odpowiedzi Lolmausa. Zrobiłem właśnie to, chociaż najpierw próbowałem z pikselem progowym 1, ponieważ inne odpowiedzi wspominały 0 jako „wyłącz”. W każdym razie mógłbym to przetestować natychmiast, uruchamiając to: xset mouse 4 0i tym podobne, i wreszcie zdecydowałem się na xset mouse 2 0. Jest to rodzaj włamania (przy użyciu funkcji przyspieszania dla zwykłej prędkości), ale działa, chociaż wydaje mi się, że po zastosowaniu nadal obowiązuje pewien próg.
Stéphane Gourichon
1

Osobiście uważam, że precyzyjny ruch wskaźnika jest lepszy dla ogólnego doświadczenia na pulpicie, więc to ustawienie jest również ważne dla mnie. Zawsze zastanawiałem się, dlaczego projektanci OS UXP nie tylko ustawiają przyspieszenie jako domyślne, ale również mają tendencję do usuwania kontroli z interfejsu użytkownika.

Może się okazać, że przyspieszenie, które powinno zapewnić ci większy komfort UXP, jest w rzeczywistości niepożądane w niektórych sytuacjach, ponieważ możesz pominąć odpowiednie elementy interfejsu użytkownika na ekranie podczas szybkiego poruszania myszą lub po prostu potrzebujesz precyzji w niektórych aplikacjach CAD. W szczególności trudno jest przejąć kontrolę nad elementami interfejsu suwaka i pokrętła lub przenieść kształt w interfejsie użytkownika niektórych projektantów. Ponadto przy przyspieszaniu trudno jest precyzyjnie ustawić kursor myszy w edytorze tekstu podczas kopiowania i wklejania regionu tekstu. Niektórzy mogą twierdzić, że gdy potrzebujesz precyzji, po prostu zwalniasz, ale co, jeśli nie chcesz zwolnić i nadal uzyskać precyzję?

Możesz sprawdzić, czy jest przyspieszenie, czy nie:

(1). Przesuń wskaźnik myszy na prawą stronę ekranu, zauważ fizyczną pozycję urządzenia na stole.

(2). Umiarkowanie przesuń mysz nieco w lewo, aby kursor przesunął się wokół środka ekranu, a następnie bardzo powoli przywróć urządzenie fizyczne do pierwotnej pozycji.

(3). Powtórz kroki (1) i (2) wiele razy.

Jeśli nie ma przyspieszenia, kursor powinien cały czas znajdować się po prawej stronie ekranu. W przypadku przyspieszenia wskaźnik przesuwałby się coraz bardziej w lewo, więc po 3 lub 4 razy uderzyłby w lewą stronę ekranu, więc trzeba go naprawić.

Brak przyspieszenia oznacza, że ​​musisz dostosować Device Accel Velocity Scalingparametr.

Ogólnie będzie spowalniać ruch myszy, więc musisz to zrekompensować poprzez stałą regulację prędkości. Można to zrobić poprzez zmniejszenie Device Accel Constant Decelerationparametru.

Oto, co zadziałało dla mnie:

  1. Znajdź identyfikator urządzenia myszy:

$ xinput list ... ⎜ ↳ PixArt USB Optical Mouse id=10 [slave pointer (2)] ...

Identyfikator urządzenia = 10

  1. Wyświetl właściwości urządzenia

$ xinput list-props 10 ... Device Accel Constant Deceleration (276): 1.000000 ... Device Accel Velocity Scaling (278): 10.000000 ...

  1. Zmniejsz parametr skalowania do minimum, co powinno dać ruch myszy jeden do jednego w stosunku do rzeczywistego ruchu fizycznego. Niezależnie od tego, czy wybierzesz wartość 0,1, 0,001 lub 1e-30, nie ma to znaczenia, ponieważ jest to znacznie niższe przyspieszenie niż domyślne 10,0. Nie można ustawić go na zero, ponieważ jest to uważane za błąd.

$ xinput set-prop 10 278 1e-10

  1. (opcjonalnie) Teraz możesz zauważyć, że pomimo precyzji, prędkość została ogólnie zmniejszona, więc może być konieczne zagranie z Constant Decelerationparametrem, aby przywrócić wygodną prędkość. W moim przypadku wygodnym ustawieniem było 0,7, co przyspieszyło wskaźnik o połowę, sprawiając, że ruch myszy wydawał się mniej więcej taki sam, jak wcześniej, ale bez przyspieszenia:

$ xinput set-prop 10 276 0.7

Jeśli chcesz szybciej, ustaw niższą wartość, na przykład 0,5, 0,4 itd. Jeśli chcesz, aby wolniej, ustaw na wartość 1,0, 1,2 lub nawet 1,5

George Polevoy
źródło
1

Powyższe odpowiedzi są teraz nieaktualne. Najbardziej zgrabnie działała dla mnie ostatnia sekcja tego wpisu wiki :

z libinput

Alternatywnie, ponieważ libinput-1.1.0-1 i xf86-input-libinput-0.15.0-1, możesz użyć płaskiego profilu przyspieszenia. Aby go włączyć, utwórz następujący plik:

/etc/X11/xorg.conf.d/50-mouse-acceleration.conf

Sekcja „InputClass” Identyfikator „My Mouse” Sterownik „libinput” MatchIsPointer „tak” Opcja „AccelProfile” „płaski” Opcja „AccelSpeed” „0” EndSection

i uruchom ponownie X.

Inną opcją jest to polecenie:

$ xinput --set-prop 'libinput Accel Profile Enabled' 0, 1

Co nie wymaga ponownego uruchomienia X, ale nie jest trwałe. Chociaż można go skonfigurować do automatycznego uruchamiania z funkcją Autostarting.

kellogs
źródło
0

Jak dostosować prędkość myszy w KDE
  • bez włączania przyspieszenia myszy
  • i tylko przy użyciu okna dialogowego ustawień (bez konsoli, bez plików konfiguracyjnych)

To potoczne podsumowanie odpowiedzi ekshumacji, nie zapomnij o jej głosowaniu.

W KDE przyspieszenie myszy nie jest logarytmiczne. Oznacza to, że ma dwie stałe prędkości myszy: nieprzyspieszoną i przyspieszoną. Przełącza się między sobą, gdy wystarczająco szybko szarpniesz myszą.

Pierwszej prędkości nie można konfigurować (przynajmniej z GUI). Druga prędkość jest konfigurowalna.

Rozwiązaniem jest:

  1. Ustaw „Próg wskaźnika” na 0. W rezultacie przez cały czas będzie stosowana druga prędkość.
  2. Dostosuj „Przyspieszenie wskaźnika”, aby zwiększyć lub zmniejszyć tę prędkość.

Skończysz ze stałą, niedynamiczną prędkością kursora dostosowaną do twoich upodobań.

lolmaus - Andrey Mikhaylov
źródło