Waylandの下で追加のマウスボタンを構成する


10

10ボタンマウス(Logitech M705)を使用しています。X11では、でファイルを変更することにより、追加のボタンの1つを2回目のミドルクリックとして動作するように構成できましたetc/X11/xorg.conf.d

ウェイランドでは、これはもはや機能しません。私の研究では、で何かをする必要があることを示していますlibinput。これはよくある問題だと思いましたが、どこにも答えが見つかりません。

誰かがマウスボタンを再マッピングする方法を説明できますか、それができない理由を説明できますか?


私はしばらくウェイランドを使用していますが、これまでのところボタンを再マップする方法が見つかりませんでした。
paulodiovani

回答:


6

Waylandを実行している場合のボタンの再マッピングは、次のように行うことができます。

  1. 実行xev | grep buttonして、マウスクリックイベントをログに記録し、ウィンドウ内をクリックしてイベントの数を取得します。私の場合、中央のボタンは次のとおりです。

    state 0x10, button 2, same_screen YES
    

    そして、私はそれをマッピングしたい:

    state 0x10, button 13, same_screen YES
    
  2. 次にxinput --list、ポインタデバイスを実行して見つけます。

    Logitech Performance MX  id=9  [slave pointer  (2)]
    
  3. xinput get-button-map 9 戻り値:

    1 2 3 4 ... 20
    
  4. xinput set-button-map:

    $ xinput set-button-map 9  1 13 3 4 .. 12 2 14 .. 20
    

注:9によって返された番号の番号を置き換えますid=

そして、そのキーの動作が定義されている場合、イベントがマッピングされます。そうでない場合、それは少し異なる問題です。ウェイランドTBHの下で、私は(のXorgのと非常に簡単であるイベントでコマンドを実行するための方法を発見していないxbindkeys)ので、完全にキーやマウスイベントの動作をカスタマイズ..私はウェイランドは、より多くのことをしようとしていると信じて、セキュアと、この動作を無効にします。

いずれにしても、Xorgに簡単に切り替えて機能を楽しむことができます。


うまくいきましたが、変更を永続的にするにはどうすればよいですか?xinput set-button-map新しいウェイランドセッションごとに実行する必要があるようです...
mgalgs 2017年

1
はい、毎回実行する必要があります。これを自動化するには、これをスクリプトに入れてサービスファイルを作成するか、これをディストリビューションに対応する起動時に実行されるinitフォルダーに置きます(/etc/rc.d/initであるsystemdベースのOS)。 .d /)
CermakM 2017

あなたはxconfファイルにオプションを置くことができます: Option "ButtonMapping" "1 2 3 ..."
ルhollandais volant

これはxorg入力ドライバーのみを変更します。GnomeShellやNau​​tilusなどのウェイランドコンポジションをネイティブに使用するアプリケーションは変更しません
Ray Foss

3

wayland-mouse-mapperと呼ぶ小さなシェルスクリプト+ systemdユニットファイルを作成しました

抜粋mathportillo / wayland-mouse-mapper

マウスボタンをウェイランドのキーストロークにマッピングするための小さなスクリプト。

便利なもののためにマウスの追加ボタンを使用するために自分で作りました。Gnomeを使用してFedora 27上のLogitech MX Master 2Sでテストおよび動作し、私の古いLogitech Performance MXでも動作します。他の方法(xdotools、xbindkeysなど)が機能していないように見えるため、WaylandマウスとLogitechマウス(またはマッピングを編集する場合はマウス)でおそらく機能します。

libinputデバッグイベントから読み取り、認識されたデバイスから認識されたボタンに応じてevemuを使用してキーイベントをトリガーすることで機能します。

ボタン

これらは単なるデフォルト設定であり、mousemapper.shスクリプトの最初でカスタマイズできます。

  • 進む:上のワークスペースに移動(Super+ Page up
  • 戻る:下のワークスペースに移動(Super+ Page down

0

hwdb udevルールを変更してみてください。これにより、マウスボタンがLaunch8 / F16などのキーボードキーとして登録され、ウェイランドなどのすべてのプログラムでそれらの機能が無効になります。

# /usr/lib/udev/hwdb.d/71-mouse-local.hwdb

evdev:input:*
 KEYBOARD_KEY_90004=key_f16
 KEYBOARD_KEY_90005=key_f17

その後、ルートとしてsystemd-hwdb update; udevadm triggerマウスを取り外し、再度差し込みます。

追加の健全性チェック:sudo udevadm info /dev/input/by-path/*-usb-*-mouse | grep -A3 -P3 KEYBOARD_KEYまたはsystemd-hwdb query "evdev:input:v046dp406a*、IDのプルの詳細についてはソースを参照してください。

ソース:https : //yulistic.gitlab.io/2017/12/linux-keymapping-with-udev-hwdb/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.