Các bước để tăng độ nhạy của chuột:
Đầu tiên liệt kê tất cả các thiết bị:
$ 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)]
Trong ví dụ này, chúng ta thấy id chuột là 10. Tiếp theo liệt kê các thuộc tính của nó:
$ 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
«Ma trận chuyển đổi tọa độ» chính xác là những gì chúng ta muốn. Hãy nhớ 42142 của nó.
Bằng cách thay đổi thuộc tính này, chúng ta có thể tăng tốc độ con trỏ. Các giá trị này thực sự là một ma trận biến đổi được sử dụng để tính toán chuyển động con trỏ . Từ liên kết:
Theo mặc định, CTM cho mọi thiết bị đầu vào trong X là ma trận danh tính. Ví dụ: giả sử bạn chạm vào màn hình cảm ứng tại điểm (400, 197) trên màn hình:
⎡ 1 0 0 ⎤ ⎡ 400 ⎤ ⎡ 400 ⎤
⎜ 0 1 0 ⎥ · ⎜ 197 ⎥ = ⎜ 197 ⎥
⎣ 0 0 1 ⎦ ⎣ 1 ⎦ ⎣ 1 ⎦
Các tọa độ X và Y của sự kiện thiết bị được nhập vào ma trận thứ hai của phép tính. Kết quả của phép tính là nơi tọa độ X và Y của sự kiện được ánh xạ tới màn hình. Như được hiển thị, ma trận danh tính ánh xạ tọa độ thiết bị sang tọa độ màn hình mà không có bất kỳ thay đổi nào.
Vì vậy, những gì chúng ta muốn làm với ma trận - là đặt các giá trị theo x và y thành bất kỳ giá trị cụ thể nào khác và điều này sẽ thay đổi tốc độ con trỏ. Một ví dụ từ PC của tôi:
$ xinput set-prop 10 142 2.400000, 0.000000, 0.000000, 0.000000, 2.400000, 0.000000, 0.000000, 0.000000, 1.000000
Đó là xinput set-prop <device-id> <property-number> <property-values>
. Chơi một chút với điều này cho đến khi bạn tìm thấy những người thích hợp. Lưu ý: không thay đổi giá trị cuối cùng của ma trận. Đó là lỗi của tôi khi tôi đã thử nó để có được công việc - trong trường hợp này bạn sẽ không thấy bất kỳ sự khác biệt nào.
Ít nhất là các phiên bản gần đây xinput
cho phép chỉ định thiết bị và tùy chọn theo tên, vì vậy ví dụ này cũng có thể hoạt động:
xinput set-prop 'PixArt USB Optical Mouse' 'Coordinate Transformation Matrix' 1.2 0 0 0 1.2 0 0 0 1
Những thay đổi này chỉ hoạt động cho phiên hiện tại, vì vậy, khi bạn đã chọn độ nhạy tốt, bạn nên áp dụng nó vĩnh viễn bằng cách thêm nó vào xorg.conf
(hoặc tạo một tệp như /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
Nếu bạn không chắc chắn liệu điều này có hoạt động hay không, hãy thay đổi nó thành một số giá trị lớn như 5.0
, lưu tệp và khởi động lại.
Lời cảm ơn: Tôi biết ơn Simon Thum từ danh sách gửi thư của xorg, anh ấy là người đã đưa ra gợi ý về ma trận.