포인터를 강제로 픽셀을 건너 뛰도록하려면 다음과 같이하십시오.
첫 번째 입력 장치 목록 :
$ 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)]
이 예에서 마우스 ID는 10입니다. 다음은 해당 속성을 나열합니다.
$ 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
우리는«좌표 변환 행렬»을 원합니다. 그것의 №142를 기억하십시오.
이 속성을 변경하면 포인터 속도를 높일 수 있습니다. 그것은 인 포인터 움직임을 계산하는 데 사용되는 변환 행렬 . 링크에서 :
기본적으로 X의 모든 입력 장치에 대한 CTM은 항등 행렬입니다. 예를 들어 화면의 (400, 197) 지점에서 터치 스크린을 터치한다고 가정 해 보겠습니다.
⎡ 1 0 0 ⎤ ⎡ 400 ⎤ ⎡ 400 ⎤
⎜ 0 1 0 ⎥ · ⎜ 197 ⎥ = ⎜ 197 ⎥
⎣ 0 0 1 ⎦ ⎣ 1 ⎦ ⎣ 1 ⎦
장치 이벤트의 X 및 Y 좌표는 계산의 두 번째 행렬에 입력됩니다. 계산 결과는 이벤트의 X 및 Y 좌표가 화면에 매핑되는 위치입니다. 도시 된 바와 같이, 아이덴티티 매트릭스는 장치 좌표를 변경없이 스크린 좌표에 매핑한다.
따라서 x 와 y 에 따라 값 을 증가시켜 포인터 속도 를 높이고 싶습니다 . 내 PC의 예 :
$ 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>
. 적절한 것을 찾을 때까지 이것으로 조금 연주하십시오. 참고 : 행렬의 마지막 값을 변경하지 마십시오. 내가 일을하려고 할 때 그것은 내 잘못이었다 –이 경우에 당신은 아무런 차이를 보지 못할 것이다.
감사의 글 : xorg 메일 링리스트에서 Simon Thum에게 감사의 말을 전합니다. 그는 매트릭스에 대한 힌트를 준 사람이었습니다.
UPD : Wine으로 실행되는 일부 Windows 게임은 포인터 동작이 이상 할 수 있습니다 (예 : 이전 카운터 스트라이크 1.6의 목표는 마우스를 어떻게 움직여도 바닥에 닿을 때까지 감소합니다) . X 와 Y 에 CTM의 1 게임을 실행하기 전에.