web-dev-qa-db-ja.com

Logitech M545ボタンマッピング

昨日Logitech M545を購入しましたが、正常に動作していません。私の古いM705では、親指ボタンを使用してFirefoxやThunarなどで戻る/進むことができましたが、M545ではボタンを押すための通常のコードも送信しません。私が得るものは次のとおりです。

戻るボタン:

KeyPress event, serial 28, synthetic NO, window 0x7000001,
    root 0x2d3, subw 0x0, time 7968516, (47,78), root:(3157,978),
    state 0x10, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 28, synthetic NO, window 0x7000001,
    root 0x2d3, subw 0x0, time 7968516, (47,78), root:(3157,978),
    state 0x50, keycode 40 (keysym 0x64, d), same_screen YES,
    XLookupString gives 1 bytes: (64) "d"
    XmbLookupString gives 1 bytes: (64) "d"
    XFilterEvent returns: False

KeyRelease event, serial 28, synthetic NO, window 0x7000001,
    root 0x2d3, subw 0x0, time 7968524, (47,78), root:(3157,978),
    state 0x50, keycode 40 (keysym 0x64, d), same_screen YES,
    XLookupString gives 1 bytes: (64) "d"
    XFilterEvent returns: False

KeyRelease event, serial 28, synthetic NO, window 0x7000001,
    root 0x2d3, subw 0x0, time 7968530, (47,78), root:(3157,978),
    state 0x50, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

転送ボタン:

KeyPress event, serial 28, synthetic NO, window 0x7000001,
    root 0x2d3, subw 0x0, time 7969328, (47,78), root:(3157,978),
    state 0x10, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 28, synthetic NO, window 0x7000001,
    root 0x2d3, subw 0x0, time 7969436, (47,78), root:(3157,978),
    state 0x50, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

DebianとUbuntuの両方の鮮やかな、いくつかの異なるカーネルで試しました。

これらのボタンを再マッピングして慣れた動作を取得する方法、およびボタンとキーボードの押下を区別する方法を教えてください。また、両方のボタンがSuper_Lを送信するので、それらを区別する方法を教えてください。

再マッピングがキーボードからSuper_Lを失うことを意味する場合は、そうではありませんが、理想的ではありません。

何か案は?

4
Petter Adsen

M560/M545/M546のドライバーを提供する GitHubのレポ を作成しました。

それをダウンロードし、適切なカーネルバージョンにソースをチェックアウトし、make && Sudo make installを実行します。その後、xbindkeys-configを使用してマッピングできます。

2
CzBiX

通常、このような場合にボタンを再プログラムするには、Logitechユーティリティを実行する必要があります。 VirtualBoxで問題なく動作します。

(私のG300での経験と、M545の説明がプログラム可能であると言っているという事実から)

別の可能性はevrouterデーモンです。入力デバイスからのイベントをオンザフライで変更できます。問題を修正したり、ボタンの機能をさらに拡張したりするために使用できます。

2
Velkan

私は(なんとか)それをうまくやった。

以下を使用して「/etc/udev/hwdb.d/90-logitech-m-545.hwdb」を作成します。

# Logitech M545
keyboard:usb:v046DpC52B*
 KEYBOARD_KEY_70007=back
 KEYBOARD_KEY_700E3=forward

次に:

udevadm hwdb --update

レシーバーのプラグを抜き、再び差し込むと、少なくともFirefoxではサムボタンが正常に動作するようになりました。

これはキーボードイベントを送信するための回避策にすぎませんが、私が主に望んでいることを実行します。

編集:コードを修正

1
Petter Adsen