Chỉ cần buộc con trỏ bỏ qua pixel, đây là cách:
Danh sách thiết bị đầu vào đầu tiên:
$ 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): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
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
Chúng tôi muốn «Ma trận biến đổi tọa độ», hãy nhớ 42142.
Bằng cách thay đổi thuộc tính này, chúng ta có thể tăng tốc độ con trỏ. Nó là một ma trận biến đổi, được sử dụng để tính toán một 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, chúng tôi muốn tăng các giá trị theo x và y , do đó tăng 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 một cá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.
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.
CẬP NHẬT : lưu ý, một số trò chơi Windows chạy với Wine có thể có hành vi con trỏ kỳ lạ (ví dụ: chú ý rằng mục tiêu trong Counter Strike 1.6 cũ sẽ giảm xuống, cho đến khi nó nhìn xuống sàn, bất kể bạn di chuyển chuột như thế nào) , trong trường hợp này chỉ cần đặt lại x và y của CTM lên 1 trước khi chạy trò chơi.