Jak naprawić prędkość przewijania myszy Microsoft na Ubuntu

11

Na wypadek, gdyby ktoś dostał ten sam problem, co właśnie.

Podczas przełączania z systemu Windows na Ubuntu (w trybie podwójnego rozruchu) moje kółko przewijania myszy bezprzewodowej Microsoft szaleje! Jest całkowicie nadwrażliwy.

João Victor Zanatta
źródło
2
Powinieneś to zrobić jako pytanie i odpowiedź. stackoverflow.blog/2011/07/01/…
Terrance
Działa to dla mnie, sourceforge.net/projects/resetmsmice , problem prędkości występuje tylko wtedy, gdy uruchamiasz system Windows z Ubuntu.
Ted Feng

Odpowiedzi:

10

Otwórz monit

Wymień swoje urządzenia, zwróć uwagę na identyfikator urządzenia, które chcesz naprawić, jeśli są 2 z nich, jest w porządku.

$ xinput list

Mój miał 9 i 10 lat

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® 2.4GHz Transceiver v8.0  id=9    [slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® 2.4GHz Transceiver v8.0  id=10   [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)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ Microsoft Microsoft® 2.4GHz Transceiver v8.0  id=8    [slave  keyboard (3)]

Teraz zrób to, xbędąc identyfikatorem

$ xinput list-props x | grep 'Scrolling Distance'
Evdev Scrolling Distance (255): 1, 1, 1

Wreszcie, sztuczka polega na znalezieniu idealnych wartości, moje były 10, 10, 10

$ xinput set-prop x 'Evdev Scrolling Distance' 10, 10, 10

Aby trwale ustawić zmianę ( źródło ):

Ukryty plik w twoim katalogu to „.profile” (Ctrl + H, aby zobaczyć ukryte pliki) Kliknij go dwukrotnie i otwórz. Skopiuj wklej poprzednie polecenie na końcu. Otóż ​​to!

PS, aby zastosować to samo polecenie dla wszystkich użytkowników, możesz edytować plik / etc / profile (nie ukryty plik).

Teraz możesz już iść!

João Victor Zanatta
źródło
To jest doskonałe! Daję +1. Wygląda na to, że nie wszystkie systemy są skonfigurowane pod mysz o wysokiej rozdzielczości. Przynajmniej według Microsoft - support.microsoft.com/en-us/help/303091/… . Moje ustawienia to 8.
Royi
Działa to również na Linux Mint 18.2 (Sonya).
Royi
Jakieś pomysły na Ubuntu 17, teraz w Wayland?
Dogweather,
5
To nie działa ze mną, ponieważ nie mam żadnej „Odległości przewijania” w ustawieniach mojej myszy.
smartmouse
Używam mikro-miękkiej klawiatury wszystko w jednej z touchpadem.
Tabliczka
3

To włamanie, ale usunięcie / ponowne podłączenie urządzenia nadawczo-odbiorczego USB pozwala Ubuntu odpowiednio ustawić rozdzielczość i uzyskać bardzo rozsądną prędkość przewijania. Używam tej sztuczki w każdej wersji Ubuntu od kilku lat. Rzadko uruchamiam ponownie komputer, więc jest to dla mnie najłatwiejsze rozwiązanie :)

Być może ktoś może wyjaśnić, dlaczego to działa.

Michael Sandman
źródło
2
Ten projekt może pomóc sourceforge.net/projects/resetmsmice
Michael Sandman
Doszedłem do tego, ale odkąd cały czas restartuję kopalnię, a klucz sprzętowy jest w złym miejscu, wolę ustawiać programowo
João Victor Zanatta
Ok. To wciąż nie jest bardzo płynne dla wszystkich w jednej klawiaturze Microsoft. Ale to wystarcza do przeglądania stron internetowych. Dzięki.
ablmf
3

Rozwiązanie, które działa dla mnie w przypadku problemu z prędkością przewijania myszy bezprzewodowej:

Kolejność włączania modułów Linux jest bardzo ważna.

Dodaj plik o nazwie /etc/modprobe.d/mshid.confzawierający:

install hid-generic /sbin/modprobe hid ; /sbin/modprobe usbhid ; /sbin/modprobe -i hid-generic ; true

Zapewnia to prawidłową kolejność ładowania, a prędkość przewijania jest wtedy normalna. Tak dzieje się w tle, gdy system jest włączony, podczas usuwania i dodawania transiwera. Działa to w innych dystrybucjach niż Ubuntu. Aby to zadziałało, konieczne jest ponowne uruchomienie komputera.

Vlad Tudorache
źródło
Dzięki. To działało dla mnie.
kalan
To również działało dla mnie i nie trzeba restartować!
Benjamin Barrois,
Po wypróbowaniu wielu rzeczy była to w końcu jedyna rzecz, która zadziałała dla mnie! (w Mennicy 19)
WłochyPaleAle
0

Jest przypadek użycia, który nie jest w 100% objęty poprzednimi odpowiedziami, więc chciałem udostępnić poniższy skrypt, który napisałem, który pożycza z zaakceptowanego rozwiązania powyżej. Jestem pewien, że istnieją o wiele bardziej eleganckie sposoby, ale to zadziałało dla mnie.

#!/bin/sh

while true
do
xinput set-prop `xinput list|grep Nano|grep pointer|awk '{ print $8 }'|tr -d 'id='|sed -n 2p` 'Evdev Scrolling Distance' 10, 10, 10
sleep 5
done

Skrypt zaimplementuje rozwiązanie xinput co 5 sekund, szukając drugiej wskazówki wejściowej (tej, którą zawsze znajdowałem, kontrolowałem prędkość przewijania). Musiałem użyć tego polecenia, ponieważ numer właściwości nie zawsze był taki sam - ale zawsze był drugi na liście.

Przypadek użycia: Jeśli używasz przełącznika USB do sterowania wieloma komputerami, z których co najmniej jeden jest systemem Linux, a jednym z nich jest system Windows - po przełączeniu z systemu Linux na system Windows na system Linux zmiana prędkości przewijania nie jest utrzymywana (nawet jeśli używasz xinput, .profile lub modprobe).

Zauważyłem również, że rozwiązanie .profile jest problematyczne, ponieważ jeśli wyjmiesz urządzenie nadawczo-odbiorcze i włożysz je z powrotem, a następnie uruchom ponownie, prędkość przewijania będzie bardzo wolna, ponieważ zajmie on odpowiednią prędkość przewijania i przeskaluje go z powrotem w zależności od tego, co jest w Twój profil.

Skrypt, który udostępniłem powyżej, można uruchomić za pomocą nohup za każdym razem, gdy używasz przełącznika USB, i zabić, gdy nie używasz. Znowu - nie elegancki, ale ma niewielki wpływ i działa w 100%.

Ben McMahon
źródło