Как исправить скорость прокрутки мыши Microsoft на Ubuntu

11

На случай, если кто-то получит ту же проблему, что и я.

При переключении с Windows на Ubuntu (в режиме двойной загрузки) мое колесо прокрутки беспроводной мыши Microsoft сходит с ума! Это абсолютно сверхчувствительно.

Жоао Виктор Занатта
источник
2
Вы должны сделать это как вопрос и ответ. stackoverflow.blog/2011/07/01/…
Terrance
Это работает для меня, sourceforge.net/projects/resetmsmice , проблема со скоростью возникает только при двойной загрузке с Windows на Ubuntu.
Тед Фенг

Ответы:

10

Откройте подсказку

Перечислите ваши устройства, обратите внимание на идентификатор устройства, которое вы хотите исправить, если их 2, это нормально.

$ xinput list

Моим было 9 и 10

⎡ 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)]

Теперь сделайте это, xбудучи вашим идентификатором

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

Наконец, хитрость в том, чтобы найти ваши идеальные ценности, мои были 10, 10, 10

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

Чтобы навсегда установить изменение ( источник ):

Скрытый файл в вашем каталоге - «.profile» (Ctrl + H, чтобы увидеть скрытые файлы). Дважды щелкните по нему и откройте его. Скопируйте и вставьте предыдущую команду в конце. Это оно!

PS Чтобы применить одну и ту же команду для всех пользователей, вы можете отредактировать файл / etc / profile (не скрытый файл).

Теперь тебе пора!

Жоао Виктор Занатта
источник
Это потрясающе! Я +1 это. Кажется, не все системы настроены для мышей высокого разрешения. По крайней мере, в соответствии с Microsoft - support.microsoft.com/en-us/help/303091/… . Мои настройки были 8.
Ройи
Это работает и на Linux Mint 18.2 (Sonya).
Рой
Есть идеи для Ubuntu 17, теперь на Wayland?
Dogweather
5
Это не работает со мной, потому что у меня нет никакого «расстояния прокрутки» в настройках моей мыши.
smartmouse
Я использую микро-софт все в одной клавиатуре с сенсорной панелью.
Тачпад
3

Это подделка, но отключение / повторное подключение USB-трансивера позволяет Ubuntu правильно установить разрешение, и вы получаете очень разумную скорость прокрутки. Я использовал этот трюк в каждом выпуске Ubuntu в течение последних нескольких лет. Я редко перезагружаю свою машину, так что это самое простое решение для меня :)

Возможно, кто-то может объяснить, почему это работает.

Майкл Сэндман
источник
2
Этот проект может помочь sourceforge.net/projects/resetmsmice
Майкл Сэндман,
Я понял это, но так как я все время перезагружаюсь, а ключ находится в плохом месте, я предпочитаю устанавливать его с помощью программного обеспечения
João Victor Zanatta
Хорошо. Это все еще не очень гладко для меня все в одной клавиатуре Microsoft. Но этого достаточно для просмотра веб-страниц. Спасибо.
ablmf
3

Решение, которое работает для меня для проблемы скорости прокрутки беспроводной мыши:

Порядок включения модулей Linux очень важен.

Добавьте файл с именем, /etc/modprobe.d/mshid.confсодержащим:

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

Это обеспечивает правильный порядок загрузки, и скорость прокрутки становится нормальной. Это то, что происходит в фоновом режиме, когда система включена, при удалении и добавлении трансивера обратно. Это работает в других дистрибутивах, чем Ubuntu. Перезагрузка требуется для этого, чтобы работать.

Влад Тудораче
источник
Спасибо. Это сработало для меня.
Калан
Это сработало и для меня, и не нужно перезагружаться!
Бенджамин Барруа
Попробовав много вещей, это, наконец, единственное, что сработало для меня! (на монетном дворе 19)
ItalyPaleAle
0

Существует вариант использования, который не покрывается на 100% предыдущими ответами, поэтому я хотел бы поделиться приведенным ниже сценарием, который заимствован из принятого решения выше. Я уверен, что есть гораздо более элегантные способы сделать это, но это сработало для меня.

#!/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

Скрипт будет реализовывать решение xinput раз в 5 секунд, ища второй ввод указателя (я нашел, что всегда контролируется скорость прокрутки). Мне нужно было использовать эту команду, потому что номер свойства не всегда был одинаковым - но он всегда был вторым в списке.

Пример использования: если вы используете USB-коммутатор для управления несколькими компьютерами, по крайней мере один из которых - Linux, а другой - Windows - при переключении с Linux на Windows на Linux изменение скорости прокрутки не сохраняется (даже если вы используете решение xinput, .profile или modprobe).

Я также нашел решение .profile проблематичным в том, что если вы удалите трансивер и вставите его обратно, а затем перезагрузите компьютер, скорость прокрутки будет очень медленной, потому что она возьмет соответствующую скорость прокрутки и уменьшит ее до того, что находится в твой профиль.

Сценарий, которым я поделился выше, может быть запущен через nohup, когда вы используете USB-коммутатор, и убит, когда вы этого не сделаете. Опять же - не элегантно, но оно малоэффективно и работает на 100%.

Бен МакМэхон
источник