私はUbuntuでBluetoothタッチマウスを使用していますが、実際には役に立たないいくつかの追加のキーマップがあることがわかりました。マウスを左に押すと「d」が生成され、右に押すとバックスペースキーが生成されます。 xinputとinput-kdbを使ってキーマップを変更してみましたが、これまでは運がありませんでした。
$ xinput list "ThinkPad Bluetooth Touch Mouse"
ThinkPad Bluetooth Touch Mouse
Reporting 6 classes:
Class originated from: 10. Type: XIButtonClass
Buttons supported: 7
Button labels: "Button Left" "Button Middle" "Button Right" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right"
Button state:
Class originated from: 10. Type: XIKeyClass
Keycodes supported: 248
Class originated from: 10. Type: XIValuatorClass
Detail for Valuator 0:
Label: Rel X
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 10. Type: XIValuatorClass
Detail for Valuator 1:
Label: Rel Y
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 10. Type: XIValuatorClass
Detail for Valuator 2:
Label: Rel Vert Wheel
Range: -1.000000 - -1.000000
Resolution: 1 units/m
Mode: relative
Class originated from: 10. Type: XIScrollClass
Scroll info for Valuator 2
type: 1 (vertical)
increment: -1.000000
flags: 0x2 ( preferred )
ボタンを無効にしても役に立ちません(ゼロにマップ)、まださまざまな文字が生成されます。
変更キーマップを使用するとinput-kbd
エラーが発生します。
$ sudo input-kbd 6
/dev/input/event6
bustype : BUS_BLUETOOTH
vendor : 0x17ef
product : 0x6063
version : 87
name : "ThinkPad Bluetooth Touch Mouse"
phys : "9c:b6:d0:ec:e1:c4"
uniq : "f0:65:dd:b0:b6:d5"
bits ev : EV_SYN EV_KEY EV_REL EV_MSC EV_REP
map: 12 keys, size: 19/64
0x90001 = 272 # BTN_LEFT
0x90002 = 273 # BTN_RIGHT
0x90003 = 274 # BTN_MIDDLE
0x70006 = 46 # KEY_C
0x70007 = 32 # KEY_D
0x7002a = 14 # KEY_BACKSPACE
0x70014 = 16 # KEY_Q
0x7002b = 15 # KEY_TAB
0x700e3 = 125 # KEY_LEFTMETA
0x700e0 = 29 # KEY_LEFTCTRL
0xc0224 = 158 # KEY_BACK
0xc0225 = 159 # KEY_FORWARD
0x70007 = 240
d をマッピングするファイルを生成すると、KEY_UNKNOWN
次のようになります。
$ sudo input-kdb -f keymap 6
/dev/input/event6
map: 12 keys, size: 19/64
scancode 458759 out of range (0-19)
マウスから派生したキーボード入力を何とかマッピングする他の方法はありますか?