如何重新映射 xev 未辨識的滑鼠按鈕
Logitech M720 有一個拇指按鈕,它沒有顯示在以下位置的按鈕標識符
xev
:此拇指按鈕導致 Ctrl+Alt+Tab。
我正在使用 Fedora 28,儘管這里報告了 Ubuntu 的相同問題:https ://askubuntu.com/questions/956484/logitech-mouse-thumb-button-not-showing-in-xev
還有一些與羅技滑鼠不同的相關問題:MX Master question和MX Anywhere 2S,似乎有一些按鈕名稱帶有
evtest
,但我evtest
的拇指按鈕輸出看起來沒有任何按鈕名稱:Event: time 1538277331.280194, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e0 Event: time 1538277331.280194, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 1 Event: time 1538277331.280194, -------------- SYN_REPORT ------------ Event: time 1538277331.288214, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e2 Event: time 1538277331.288214, type 1 (EV_KEY), code 56 (KEY_LEFTALT), value 1 Event: time 1538277331.288214, -------------- SYN_REPORT ------------ Event: time 1538277331.296210, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7002b Event: time 1538277331.296210, type 1 (EV_KEY), code 15 (KEY_TAB), value 1 Event: time 1538277331.296210, -------------- SYN_REPORT ------------ Event: time 1538277331.304218, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7002b Event: time 1538277331.304218, type 1 (EV_KEY), code 15 (KEY_TAB), value 0 Event: time 1538277331.304218, -------------- SYN_REPORT ------------ Event: time 1538277331.312212, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e2 Event: time 1538277331.312212, type 1 (EV_KEY), code 56 (KEY_LEFTALT), value 0 Event: time 1538277331.312212, -------------- SYN_REPORT ------------ Event: time 1538277331.320218, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e0 Event: time 1538277331.320218, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 0 Event: time 1538277331.320218, -------------- SYN_REPORT ------------
該按鈕真的硬連線以發出 CTRL ALT TAB 嗎?
是否可以重新映射拇指按鈕?
使用 Solar v1.0.3,可以將按鈕(包括拇指按鈕,也稱為多平台手勢按鈕)重新映射到其他滑鼠操作:
如果滑鼠關閉,更改將被重置,除非 Solar 正在執行以恢復映射。
持久重新映射和重新映射到其他組合鍵都是可能的,並且正在開發中:https ://github.com/pwr-Solaar/Solaar/issues/832
該按鈕
Left Ctrl
Left Alt
Tab
在核心輸入層級別生成序列,這意味著生成該序列的是設備本身。這對於其他羅技設備來說是不同的,這沒有任何意義。我不知道該序列是多麼“硬連線”,它可能會更改它特定於該設備的羅技工具。這並不容易,你必須找到這樣的工具(可能適用於 Windows),然後你需要用 USB 嗅探器記錄 Windows 發送和接收的 USB 命令,然後你必須編寫一個小程序來模仿它們在 Linux 上。這樣做的好處是,如果您將其開源,其他擁有此設備的人也可以使用它,所以也許有人已經這樣做了(花點時間在Google上搜尋一下)。
另一種選擇是您在 X 級別(使用您的 WM
xbindkeys
等)擷取此特定序列,並將您自己的事件等附加到它。當然,這也會在您的鍵盤上檢測到相同的序列。第三種選擇是檢測輸入層級別的序列。為此,您需要能夠編寫一個 C 程序來“抓取”相應的
/dev/input/eventX
,翻譯該特定鍵序列並通過其他所有內容,使用uinput
設備作為新的輸入層源。第四種選擇可能是用於
hwdb
進行某種翻譯,但 AFAIK 它不翻譯序列(但我沒有詳細查看)。