Ubuntu 16.04에서는 '가운데' 버튼을 길게 눌러 스크롤 휠을 에뮬레이트하기 위한 3m Ergo Mouse의 evdev 구성에서 이것이 제대로 작동했습니다. Ubuntu 18.04에서는 더 이상 작동하지 않습니다.
/usr/share/X11/xorg.conf.d/42-middle-mouse-scrolling.conf -rw-r--r-- 1 루트 루트 395 2017년 2월 23일 42-middle-mouse-scrolling.conf
Section "InputClass"
Identifier "Middle Mouse Button Scrolling"
Driver "evdev"
MatchProduct "Optical Mouse"
MatchDevicePath "/dev/input/event*"
Option "EmulateWheel" "true"
Option "EmulateWheelButton" "2"
Option "XAxisMapping" "6 7"
Option "YAxisMapping" "4 5"
EndSection
추가한 후 다시 시작했습니다.
Ubuntu 18.04에서는 더 이상 작동하지 않습니다. 그래서 더 많은 정보를 찾기 위해 이것을 시도했습니다.
xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Forward USB Optical Mouse id=10 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics 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)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Chicony USB2.0 Camera: Chicony id=11 [slave keyboard (3)]
↳ HID 05f3:0007 id=12 [slave keyboard (3)]
↳ HID 05f3:0007 id=13 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)]
그리고 입력 이름은 여전히 동일합니다. 위의 구성 MatchProduct를 전체 이름 'Forward USB Optical Mouse'로도 시도했습니다.
sudo evtest
그런 다음 이벤트를 보려고 했습니다 .
Event: time 1533888912.632951, -------------- SYN_REPORT ------------
(3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Forward USB Optical Mouse id=10 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics 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)]
↳ Power Button id=8 [slave Event: time 1533888912.729025, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90003
그리고 그것에서도 Option "EmulateWheelButton" "4"
.
누군가 Ubuntu 16과 Ubuntu 18이 xorg에서 작동하는 방식의 차이점을 알고 있거나 내가 잘못한 것을 발견할 수 있기를 바랍니다.
답변1
좋아요, 이제 이 문제를 해결했습니다. 이 문제를 겪는 다른 분들을 위해.
xinput
내 장치 목록:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ PixArt USB Optical Mouse id=13 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics 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)]
...
그런 다음 거기에서 입력에 대한 소품을 볼 수 있습니다.
Device 'PixArt USB Optical Mouse':
Device Enabled (142): 1
Coordinate Transformation Matrix (144): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Natural Scrolling Enabled (279): 0
libinput Natural Scrolling Enabled Default (280): 0
libinput Scroll Methods Available (281): 0, 0, 1
libinput Scroll Method Enabled (282): 0, 0, 1
...
이는 evdev가 더 이상 드라이버가 아니며 이제 libinput이 드라이버임을 나타냅니다. 그 시점에 나는 갔다.https://www.systutorials.com/docs/linux/man/4-libinput//usr/share/X11/xorg.conf.d/42-middle-mouse-scrolling.conf의 옵션을 다음과 같이 설정합니다.
Section "InputClass"
Identifier "Middle Mouse Button Scrolling"
MatchProduct "PixArt USB Optical Mouse"
Option "MiddleEmulation" "on"
Option "ScrollMethod" "button"
Option "ScrollButton" "2"
EndSection
재부팅한 후 3m ergo 마우스 스크롤이 다시 작동합니다.