Ubuntu 18.10LTSでFirefoxバージョン67を実行しています。
Logitech M-UAG120マウス スクロールホイール付きです。スクロールホイールには、左右に横に押す方法があります。必要なのは、FirefoxのAlt-LEFTと同じように左に押すアクションでページに戻ることと、逆にスクロールホイールを右に押す操作です。現在、Firefoxはどちらのスクロールホイールプッシュ操作でもどちらのXイベントにも応答していません。 (これは、正常に機能しているスクロールホイールを垂直に押し下げてマウスの中ボタンをクリックすることと同じではないため、これらを「プッシュ操作」と呼んでいます)。スクロール操作も正しく機能します。
xev を実行し、次のXイベントを生成していると判断しました。
http://kb.mozillazine.org/About:config を調べたところ、これらのイベントに固有のものは何も見つかりませんでした。Webを検索して、不足していました。
Xイベントが一貫して同じ動作をするように、マウスまたはFirefoxを構成するにはどうすればよいですか?可能であれば、このマウス用の特別なドライバーをインストールしたくありません。
Logitech M525 Bluetoothマウス を備えたUbuntu 18.10 LTSデスクトップでは、左右のスクロールホイールのプッシュ操作によって異なるが生成されます。 xev からわかるように、ラップトップで使用されている有線マウスよりもXイベントのセット:
そして、この特定のマウスの左/右スクロールホイールのプッシュ操作は、私が期待するとおりに機能します。
Logitech M-UAG120マウス を両方のマシン(ラップトップとデスクトップ、どちらもUbuntu 18.10 LTSを実行)で再度テストしましたが、生成されるXイベントは一貫して異なりますLogitech M525 Bluetoothマウス より。
特定のXイベントはマウスデバイス間で標準化されていないと推測しますが、両方のマウスデバイスがLogitech製であるため、これは驚くべきことです。
私は次の解決策を見つけました:
/usr/share/X11/xorg.conf.d/71-Logitech-Optical-Tilt-Wheel-Mouse-M-UAG120.conf
を追加しました:
Section "InputClass"
Identifier "Logitech Optical Tilt Wheel Mouse M-UAG120"
MatchUSBID "046d:c019"
MatchDevicePath "/dev/input/event*"
# I found that using this command:
#
# xinput --set-button-map 10 1 2 3 4 5 8 9 8 9
# ^ ^
# The "^" above are the numbers I changed from 6 and 7 to 8 and 9, respectively.
# That does the same thing as this ButtonMapping below:
#
Option "ButtonMapping" "1 2 3 4 5 8 9 8 9"
EndSection
そして再起動しました。
Sudo service gdm restart
を使用してgdmディスプレイマネージャーを再起動してもnotが機能しなかったのは、私には不可解です。ログに記録できませんでした。 in(CAPSLOCKをオンにしていない場合でも、パスワードプロンプトに戻り続けた)なので、再起動する必要がありました。
上記を理解するのに役立つと私が見つけた参考資料:
デバイスIDとは、以下のid=10
番号を意味します。 「ボタンパラメータ」とは、/usr/share/X11/xorg.conf.d/71-Logitech-Optical-Tilt-Wheel-Mouse-M-UAG120.conf
ファイルのButtonMapping
で使用されるパラメータの意味を意味します。
プラグイン後にデバイスを見つけるためのGrep:
$ xinput --list | grep -i logit
⎜ ↳ Logitech USB Optical Mouse id=10 [slave pointer (2)]
システムがボタンの意味であると考えるものを確認してください。
$ xinput --list 10 | grep -i 'Button labels'
Button labels: "Button Left" "Button Middle" "Button Right" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right" "Button Side" "Button Extra" "Button Forward" "Button Back" None
引用符で囲まれた文字列には、ButtonMapping
に対応する1ベースの列挙値があると推測していますが、その証拠はまだありません。したがって、それが正しいと仮定すると、それらに番号を付けることができます。
$ xinput --list 10 | grep -i 'Button labels' | sed 's%: %:\n%g; s%" "%"\n"%g' | sed '1d' | cat -n
1 "Button Left"
2 "Button Middle"
3 "Button Right"
4 "Button Wheel Up"
5 "Button Wheel Down"
6 "Button Horiz Wheel Left"
7 "Button Horiz Wheel Right"
8 "Button Side"
9 "Button Extra"
10 "Button Forward"
11 "Button Back" None
$
その憶測も Logitech_Marble_Mouse --Basic_function でジャイブしているようです。
したがって、8と9のButtonMapping
の位置は、システムがFirefoxXアプリケーションに渡す「ブラウザの戻る」アクションと「ブラウザの進む」アクションに対応します。他のすべての動作を保持したかったので、/usr/share/X11/xorg.conf.d/71-Logitech-Optical-Tilt-Wheel-Mouse-M-UAG120.conf
ファイルのキーラインは次のとおりです。
Option "ButtonMapping" "1 2 3 4 5 8 9 8 9"
# ^ ^
(^
は、変更される6および7パラメーターのみをマークしました)。
libinput(4)のマニュアルページのボタンマッピングセクション メカニズムについて説明しています。
「libinput」は私が偶然見つけたものです。なぜなら buntu16.04およびLogitechM57 で次のように述べているからです。
Ubuntu 18.04は、デフォルトでevdevドライバーを使用しなくなりました。 Libinputに取って代わられました
input(1)man page は、ディスプレイマネージャまたはXサーバーを再起動せずに、ButtonMapping
オプションのボタンパラメータを直接確認するオプションがあります。
--set-button-map device map_button_1 [map_button_2 [...]]
Change the button mapping of device. The buttons are specified in physical order (starting with button 1) and are mapped to the logical button provided. 0 disables a but‐
ton. The default button mapping for a device is 1 2 3 4 5 6 etc.
したがって、何も再起動/再起動せずに使用できるコマンドは次のとおりです。
$ xinput --set-button-map 10 1 2 3 4 5 8 9 8 9
$
Logitech_Marble_Mouse-ボタンの割り当て はArchLinux固有およびデバイス固有ですが、特に次のように記載されている場合は、それでも非常に役立ちました。
ボタンを押すと、新しいアクションを割り当てることができます。これは、位置パラメータを設定することによって行われます。ボタン1、2、3、8、および9の値は変更できます(ボタン2は、2つの大きなボタンを組み合わせて押すだけです)。パラメーター4、5、6、または7は変更しないでください。
このマウスデバイスのButtonMapping
の6と7のパラメータを実際に変更する必要があったことを除いて。上記は、なぜ「変更しないでください」と述べたのかを説明していません。
xorg.conf(5)man page は、confファイルがどのように機能するかを示していますが、リリースごとに動作が変わるため、次のように、正しいリリースになっていることを確認してください。彼らのウェブページの上部に:
Lsusbコマンド( lsusb(8)man page )を実行すると、ベンダーとデバイスIDを特定するのに役立ちました。
$ lsusb -d 046d:c019
Bus 001 Device 009: ID 046d:c019 Logitech, Inc. Optical Tilt Wheel Mouse
これが、71-Logitech-Optical-Tilt-Wheel-Mouse-M-UAG120.conf
のMatchUSBID
セクションのInputClass
オプション内で使用することになったものです。 Linuxで複数の同時入力デバイスに異なるレイアウトを割り当てる問題に対するGoveliusの回答 を参照してください。
最近変更された/var/log/Xorg.*.log
ファイルの検索:
$ ls -ladtr /var/log/X*
-rw-r--r-- 1 root root 18922 Mar 17 2017 /var/log/Xorg.failsafe.log.old
-rw-r--r-- 1 root root 18922 Mar 19 2017 /var/log/Xorg.failsafe.log
-rw-r--r-- 1 root root 26019 Jun 8 12:20 /var/log/Xorg.2.log.old
-rw-r--r-- 1 root root 26019 Jun 8 12:21 /var/log/Xorg.2.log
-rw-r--r-- 1 root root 28910 Jun 8 12:45 /var/log/Xorg.0.log.old
-rw-r--r-- 1 root root 38010 Jun 8 12:45 /var/log/Xorg.1.log.old
-rw-r--r-- 1 root root 27869 Jun 8 12:57 /var/log/Xorg.0.log
-rw-r--r-- 1 root root 34901 Jun 8 12:57 /var/log/Xorg.1.log
$
次に、それをgrepして、私のButtonMapping
が表示されていることを確認します。
$ grep -n -B10 -i -H -e 'ButtonMapping' /var/log/Xorg.1.log
/var/log/Xorg.1.log-292-[ 665.912] (**) Logitech USB Optical Mouse: Applying InputClass "libinput pointer catchall"
/var/log/Xorg.1.log-293-[ 665.912] (**) Logitech USB Optical Mouse: Applying InputClass "Logitech Optical Tilt Wheel Mouse M-UAG120"
/var/log/Xorg.1.log-294-[ 665.912] (II) Using input driver 'libinput' for 'Logitech USB Optical Mouse'
/var/log/Xorg.1.log-295-[ 665.912] (II) systemd-logind: got fd for /dev/input/event5 13:69 fd 46 paused 0
/var/log/Xorg.1.log-296-[ 665.913] (**) Logitech USB Optical Mouse: always reports core events
/var/log/Xorg.1.log-297-[ 665.913] (**) Option "Device" "/dev/input/event5"
/var/log/Xorg.1.log-298-[ 665.913] (**) Option "_source" "server/udev"
/var/log/Xorg.1.log-299-[ 665.914] (II) event5 - Logitech USB Optical Mouse: is tagged by udev as: Mouse
/var/log/Xorg.1.log-300-[ 665.914] (II) event5 - Logitech USB Optical Mouse: device is a pointer
/var/log/Xorg.1.log-301-[ 665.914] (II) event5 - Logitech USB Optical Mouse: device removed
/var/log/Xorg.1.log:302:[ 665.914] (**) Option "ButtonMapping" "1 2 3 4 5 8 9 8 9"
$
Logitech Optical Tilt Wheel Mouse M-UAG120
が表示され、その後にButtonMapping
が表示されます。
libinput(4)のマニュアルページInputClass Section は、MatchUSBID
オプションを含むすべてのオプションについて説明しています。