버튼 전용으로 사용하는 마우스가 있습니다. 마우스 움직임 입력을 비활성화하고 싶습니다. 센서를 물리적으로 덮는 것은 작동하지 않습니다.
답변1
당신은 그것을 사용할 수 있습니다 xinput
.
>xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Mouse0 id=6 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Keyboard0
여기에서 마우스 이름(이 경우 Mouse0)을 얻을 수 있습니다.
다음 명령을 사용하면 마우스 속도를 100000배로 늦춘 다음 기본적으로 0으로 만들 수 있습니다.
xinput --set-prop 6 'Device Accel Constant Deceleration' 100000
또는
xinput --set-prop Mouse0 'Device Accel Constant Deceleration' 100000
복원하려면 동일한 것을 사용할 수 있습니다
xinput --set-prop Mouse0 'Device Accel Constant Deceleration' 1
답변2
내 마우스에는 "장치 가속 일정 감속" 속성이 없습니다. 여전히 모션을 비활성화할 수 있습니다
xinput set-prop 9 266 -1
xinput set-prop 9 269 0 1
다시 활성화하세요.
xinput set-prop 9 269 1 0
input set-prop 9 266 0.0
버튼도 비활성화했습니다.
xinput set-button-map 9 0 0 0
장치 9는 내 것입니다미츠미 전기 애플 광학 USB 마우스.
장치 목록
Device 'Mitsumi Electric Apple Optical USB Mouse':
Device Enabled (132): 1
Coordinate Transformation Matrix (134): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Accel Speed (266): -1.000000
libinput Accel Speed Default (267): 0.000000
libinput Accel Profiles Available (268): 0, 0
libinput Accel Profile Enabled (269): 0, 1
libinput Accel Profile Enabled Default (270): 1, 0
libinput Natural Scrolling Enabled (271): 0
libinput Natural Scrolling Enabled Default (272): 0
libinput Send Events Modes Available (250): 1, 0
libinput Send Events Mode Enabled (251): 0, 0
libinput Send Events Mode Enabled Default (252): 0, 0
libinput Left Handed Enabled (273): 0
libinput Left Handed Enabled Default (274): 0
libinput Scroll Methods Available (275): 0, 0, 1
libinput Scroll Method Enabled (276): 0, 0, 0
libinput Scroll Method Enabled Default (277): 0, 0, 0
libinput Button Scrolling Button (278): 2
libinput Button Scrolling Button Default (279): 274
libinput Middle Emulation Enabled (280): 0
libinput Middle Emulation Enabled Default (281): 0
Device Node (253): "/dev/input/event4"
Device Product ID (254): 1452, 772
libinput Drag Lock Buttons (282): <no items>
libinput Horizonal Scroll Enabled (255): 1
답변3
내가 man 4 mousedrv
올바르게 읽었다면 xorg.conf의 CorePointer 섹션에서 이것을 설정할 수 있습니다.
Option "EmulateWheel" true
Option "EmulateWheelButton" 0
Option "EmulateWheelInertia" 10000
이는 움직임을 마우스 휠 버튼 이벤트로 변환하지만 관성 설정으로 인해 이벤트 등록에 너무 둔감해집니다. 최신 시스템에서는 mousedrv가 아닌 evdev입니다. 이는 xinput을 사용하여 런타임에 설정할 수도 있습니다. 예를 들면 다음과 같습니다.
xinput --set-prop 17 'Evdev Wheel Emulation' 1
xinput --set-prop 17 'Evdev Wheel Emulation Button' 0
xinput --set-prop 17 'Evdev Wheel Emulation Inertia' 10000
여기서 17은 자신의 장치 번호여야 합니다. 저는 장치 이름으로 이 번호를 가져오고 시작 스크립트 중에 $device-id에 저장하는 함수를 사용합니다.
set_device_id() {
device_id=$(xinput --list | grep -m 1 "$1")
device_id=${device_id##*id=}
device_id=${device_id%%[[:space:]]*}
}
불행하게도 이는 장치 휠 입력을 비활성화하는 부작용이 있습니다.