Ubuntu 16.04 では、evdev 構成で 3m Ergo Mouse の「中央」ボタンを押し続けることでスクロール ホイールをエミュレートできました。Ubuntu 18.04 では動作しなくなりました。
/usr/share/X11/xorg.conf.d/42-middle-mouse-scrolling.conf -rw-r--r-- 1 root root 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になったことがわかりました。その時点で私は参考:/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 エルゴマウスのスクロール機能が再び動作します。