Во всех системах Ubuntu я установил скорость указателя мыши на самое медленное, но она все еще перемещается слишком быстро. (Теперь я использую Ubuntu 16.04.) Я провел некоторое исследование и узнал, что эта команда решает мою проблему:
xinput --set-prop "Logitech USB Laser Mouse" "Device Accel Constant Deceleration" 1.75
Но когда я отключаю мышь и включаю ее назад, ее скорость возвращается к настройкам системы. Таким образом, я должен выполнить эту команду все время.Что мне делать?
Обновите .xinputrc файл в своем каталоге $HOME и вставьте Ваши команды xinput (один с методической точностью). Это будет считано каждый раз, когда Вы откроете свою сессию. Если это не делает существует, создайте его: (должен был быть сгенерирован im-конфигурацией),
Мой:
# im-config(8) generated on Wed, 15 Feb 2017 19:29:43 +0100
run_im ibus
# im-config signature: 90bece1e5f840b27085989abd900276a -
#BYME# Put your xinput commands here
#BYME#With DRI2 : Device Accel Constant Deceleration (267)
xinput --set-prop 11 267 2
#BYME#With DRI3 : Device Accel Constant Deceleration (264)
xinput --set-prop 11 264 2
Этот .xinputrc работает на оба случая (если DRI3 включен или не),
Между прочим, я использую несколько экранов (смешивание 4K и старомодный 16:9 экраны), и я чувствую себя комфортно только устанавливавший Device Accel Constant Deceleration
кому: 2
. Не стесняйтесь изменять это (или другой) значение.
(НЕ ДЕЛАЙТЕ), добавьте его к своему .bashrc или другому профилю определенный файл (который может быть считан намного больше раз и может привести к неверному истолкованию того, какое поведение мыши на самом деле действительно применяется),
Для определения, какие опции необходимо использовать:
$ xinput --list --short
На моем хосте Ubuntu (я использую KVM для переключения между моими компьютерами), он возвращается:
Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ No brand Combo Free KVM id=11 [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)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ No brand Combo Free KVM id=10 [slave keyboard (3)]
Таким образом вместо того, чтобы смешать со строками (и совершить ошибки при вводе его), я предпочитаю использовать (короткие) числовые идентификаторы (знающий теперь, как найти их и их значения).
В моем случае моя мышь находится под Virtual core pointer
, определенный как No brand Combo Free KVM
с числовым идентификатором 11
. Как объяснено ранее, я теперь собираюсь использовать этот числовой идентификатор вместо соответствующей строки, но можно сделать, как Вы хотите (обе работы).
Для знания, какие свойства / возможности доступны с моей мышью я должен ввести: (адаптируйте эту команду с результатом предыдущего, Ваш собственный идентификатор должен отличаться),
$ xinput --list-props 11
Device 'No brand Combo Free KVM':
Device Enabled (136): 1
Coordinate Transformation Matrix (138): 1.000000, 0.000000, 0.000000, 0.000000,
1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (266): 0
Device Accel Constant Deceleration (267): 1.000000
Device Accel Adaptive Deceleration (268): 1.000000
Device Accel Velocity Scaling (269): 10.000000
Device Product ID (257): 4309, 20480
Device Node (258): "/dev/input/event16"
Evdev Axis Inversion (270): 0, 0
Evdev Axes Swap (272): 0
Axis Labels (273): "Rel X" (146), "Rel Y" (147), "Rel Horiz Wheel" (264), "
Rel Vert Wheel" (265)
Button Labels (274): "Button Left" (139), "Button Middle" (140), "Button Righ
t" (141), "Button Wheel Up" (142), "Button Wheel Down" (143), "Button Horiz Wheel Left"
(144), "Button Horiz Wheel Right" (145), "Button Side" (262), "Button Extra" (263), "But
ton Unknown" (260), "Button Unknown" (260), "Button Unknown" (260), "Button Unknown" (26
0)
Evdev Scrolling Distance (275): 1, 1, 1
Evdev Middle Button Emulation (276): 0
Evdev Middle Button Timeout (277): 50
Evdev Third Button Emulation (278): 0
Evdev Third Button Emulation Timeout (279): 1000
Evdev Third Button Emulation Button (280): 3
Evdev Third Button Emulation Threshold (281): 20
Evdev Wheel Emulation (282): 0
Evdev Wheel Emulation Axes (283): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (284): 10
Evdev Wheel Emulation Timeout (285): 200
Evdev Wheel Emulation Button (286): 4
Evdev Drag Lock Buttons (287): 0
Это - то, как мы можем определить, какие свойства должны быть изменены!
Accel Constant Deceleration
(числовой идентификатор: 267
) делает задание вполне хорошо для меня. Не стесняйтесь "играть" с другими свойствами для нахождения правильного поведения для собственной мыши.
Так, вот почему я добавил следующую строку к своему .xinputrc, изменив значение от 1.000000
кому: 2
(определение плавания не требуется), потому что увеличение замедления приводит к замедлению скорости мыши:
xinput --set-prop 11 267 2
DRI2 только, по умолчанию, в соответствии с Ubuntu 16.04 (в то время как это может привести к проблемам, как с последними версиями Chrome, требуя, чтобы DRI3 поддерживал гладкое мультиокно),
При включении DRI3 идентификаторы должны теперь быть:
Device 'No brand Combo Free KVM':
Device Enabled (133): 1
Coordinate Transformation Matrix (135): 1.000000, 0.000000, 0.000000, 0.000000,
1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (263): 0
Device Accel Constant Deceleration (264): 1.000000
Device Accel Adaptive Deceleration (265): 1.000000
Device Accel Velocity Scaling (266): 10.000000
Device Product ID (254): 4309, 20480
Device Node (255): "/dev/input/event9"
Evdev Axis Inversion (267): 0, 0
Evdev Axes Swap (269): 0
Axis Labels (270): "Rel X" (143), "Rel Y" (144), "Rel Horiz Wheel" (261), "
Rel Vert Wheel" (262)
Button Labels (271): "Button Left" (136), "Button Middle" (137), "Button Righ
t" (138), "Button Wheel Up" (139), "Button Wheel Down" (140), "Button Horiz Wheel Left"
(141), "Button Horiz Wheel Right" (142), "Button Side" (259), "Button Extra" (260), "But
ton Unknown" (257), "Button Unknown" (257), "Button Unknown" (257), "Button Unknown" (25
7)
Evdev Scrolling Distance (272): 1, 1, 1
Evdev Middle Button Emulation (273): 0
Evdev Middle Button Timeout (274): 50
Evdev Third Button Emulation (275): 0
Evdev Third Button Emulation Timeout (276): 1000
Evdev Third Button Emulation Button (277): 3
Evdev Third Button Emulation Threshold (278): 20
Evdev Wheel Emulation (279): 0
Evdev Wheel Emulation Axes (280): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (281): 10
Evdev Wheel Emulation Timeout (282): 200
Evdev Wheel Emulation Button (283): 4
Evdev Drag Lock Buttons (284): 0
Accel Constant Deceleration
теперь idenfified 264
. Вот почему я также добавил (имеющий то же поведение, неважно, если DRI3 включен или не) в моем .xinputrc:
xinput --set-prop 11 264 2
Надежда это поможет Вам.
Мы можем устранить эту проблему путем записи a udev
правило.
Сначала мы должны определить наше устройство мыши, существуют различные способы сделать это, я работал lsusb
и это производит:
...
Bus 002 Device 011: ID 104f:0003 WB Electronics
...
затем я использовал идентификатор поставщика 104f
, найдите для поиска моего узла устройства мыши:
$ find /dev/input -iname *104f* -ls
540 0 lrwxrwxrwx 1 root ... /dev/input/by-id/usb-104f-mouse -> ../mouse2
таким образом, мое устройство мыши /dev/input/mouse2
.
Использовать udevadm info /dev/input/mouse2 --attribute-walk
получить список деталей об устройстве, таким образом, мы можем использовать их для записи a udev
правило.
Выберите единственный раздел, который содержит: ATTRS{idProduct}
& ATTRS{idVendor}
.
Затем создайте файл здесь:
sudo nano /etc/udev/rules.d/95-mymouse.rules
с содержанием, выбранным подобный:
SUBSYSTEMS=="usb", ATTRS{idProduct}=="xxxx", ATTRS{idVendor}=="xxxx", RUN+="/bin/touch /tmp/my.udev"
Не забывайте изменяться xxxx
с Вашим собственным устройством и кодом продукта.
Теперь выполненный:
sudo udevadm control --reload
Каждый времена Вы подключаете свою мышь к системе udev
выполнит команду, и команда будет touch
файл в /tmp/my.udev
.
Почему мы просто не выполняем xinput? После a udev
управляйте выполнениями, "X" сброс некоторые детали, таким образом, мы не можем просто выполнить a xinput
управляйте как a udev
команда.
так установка inotify-tools
:
sudo apt install inotify-tools
затем запишите сценарий и поместите его где угодно, Вы хотите:
#!/bin/bash
touch /tmp/my.udev
inotifywait -m -e attrib --format '%w%f' /tmp/my.udev 2>/dev/null | while read event
do
sleep 2
xinput --set-prop "Logitech USB Laser Mouse" "Device Accel Constant Deceleration" 1.75
done
Запустите последний скрипт после входа в систему, можно поместить его в сценарии запуска, или даже .profile
файл, каждый раз Вы подключаете свою мышь, udev
будет touch
/tmp/my.udev
и inotifywait
триггеры xinput
.
inotifywait
идея прибывает отсюда