Шаги для повышения чувствительности мыши:
Сначала перечислите все устройства:
$ 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)]
В примере мы видим, что идентификатор мыши равен 10. Далее перечислим его свойства:
$ 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
«Матрица преобразования координат» - это именно то, что мы хотим. Запомни его №142.
Изменяя это свойство, мы можем увеличить скорость указателя. Эти значения на самом деле представляют собой матрицу преобразования, которая используется для вычисления движения указателя . По ссылке:
По умолчанию CTM для каждого устройства ввода в X является единичной матрицей. Например, предположим, что вы касаетесь сенсорного экрана в точке (400, 197) на экране:
⎡ 1 0 0 ⎤ ⎡ 400 ⎤ ⎡ 400 ⎤
⎜ 0 1 0 ⎥ · ⎜ 197 ⎥ = ⎜ 197 ⎥
⎣ 0 0 1 ⎦ ⎣ 1 ⎦ ⎣ 1 ⎦
Координаты X и Y события устройства вводятся во вторую матрицу расчета. Результатом вычисления является то, где координаты X и Y события отображаются на экране. Как показано, единичная матрица отображает координаты устройства на экранные координаты без каких-либо изменений.
Итак, что мы хотим сделать с матрицей - это установить значения, которые в соответствии с x и y равны любому другому конкретному значению, и это изменит скорость указателя. Пример с моего ПК:
$ xinput set-prop 10 142 2.400000, 0.000000, 0.000000, 0.000000, 2.400000, 0.000000, 0.000000, 0.000000, 1.000000
Это xinput set-prop <device-id> <property-number> <property-values>
. Поиграйте немного с этим, пока не найдете подходящие. Примечание: не меняйте последнее значение матрицы. Это была моя ошибка, когда я пытался получить работу - в этом случае вы просто не увидите никакой разницы.
По крайней мере, последние версии xinput
позволяют указывать устройства и параметры по имени, поэтому этот пример также может работать:
xinput set-prop 'PixArt USB Optical Mouse' 'Coordinate Transformation Matrix' 1.2 0 0 0 1.2 0 0 0 1
Эти изменения активны только для текущего сеанса, поэтому, как только вы выбрали хорошую чувствительность, вы должны применить ее навсегда, добавив ее в xorg.conf
(или создав такой файл, как /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
Если вы не уверены, работает ли это, измените его на какое-то большое значение, например 5.0
, сохраните файл и перезагрузите компьютер.
Благодарности: Я благодарен Саймону Туму из списка рассылки xorg, именно он дал подсказку о матрице.