Microsoft All-in-Oneワイヤレスメディアキーボード(n9z-00001)があり、現在のディストリビューションであるArch Linuxで奇妙に動作します。 ( Linux 3.19.3-3-ARCH #1 SMP PREEMPT Wed Apr 8 14:10:00 CEST 2015 x86_64 GNU/Linux
)
$ lsusb | grep -i micro
Bus 001 Device 008: ID 045e:0800 Microsoft Corp.
これがxinputが生成するものです。デバイスには2つのキーボードがあり、そのうちの1つには特別なキーボードがあります。(keys)
$ xinput list | grep -i micro
⎜ ↳ Microsoft Microsoft® Nano Transceiver v2.0 id=12 [slave pointer (2)]
⎜ ↳ Microsoft Microsoft® Nano Transceiver v2.0 id=11 [slave pointer (2)]
↳ Microsoft Microsoft® Nano Transceiver v2.0 (keys) id=10 [slave keyboard (3)]
↳ Microsoft Microsoft® Nano Transceiver v2.0 id=9 [slave keyboard (3)]
私は鍵の音だけ聞くことができますevtest
。同じキーボードですが
$ sudo evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0: Lid Switch
/dev/input/event1: Power Button
/dev/input/event2: Video Bus
/dev/input/event3: Video Bus
/dev/input/event4: AT Translated Set 2 keyboard
/dev/input/event5: Microsoft Microsoft® Nano Transceiver v2.0
/dev/input/event6: Microsoft Microsoft® Nano Transceiver v2.0
/dev/input/event7: Microsoft Microsoft® Nano Transceiver v2.0
/dev/input/event8: ThinkPad Extra Buttons
/dev/input/event9: HDA Digital PCBeep
/dev/input/event10: HDA Intel PCH Mic
/dev/input/event11: HDA Intel PCH Headphone
/dev/input/event12: HDA Intel HDMI HDMI/DP,pcm=3
/dev/input/event13: HDA Intel HDMI HDMI/DP,pcm=7
/dev/input/event14: HDA Intel HDMI HDMI/DP,pcm=8
/dev/input/event15: SynPS/2 Synaptics TouchPad
/dev/input/event16: Integrated Camera
/dev/input/event17: Logitech M705
/dev/input/event18: TPPS/2 IBM TrackPoint
/dev/input/event19: daskeyboard
/dev/input/event20: daskeyboard
Select the device event number [0-20]:
- デバイスID 9は、一部のメディアキーを除くすべての一般キーを持つこと
xinput
に対応しています。/dev/input/event5
- ID 10はこれに対応し、
/dev/input/event7
メディアキーF1-F4
、ボリュームコントロール、およびその他のMicrosoftエントリに関連する6つのその他のキーがあります。 /dev/input/event6
キーボードのタッチパッドに対応しているようです。
問題はファンクションキーにあります。必要な場所にあるメディアキーはデバイスF1-F5
に割り当てられ、他のデバイスにも割り当てられます。(keys)
F6-F12
毎回Fnを押す必要がないように、メディアキーをファンクションキーに再マップしたいと思います。
質問1:メディアキー(入力装置10を介して送信されるキー(keys)
)は登録されていませんxev
。それらは使用され、showkey --scancodes
出力を生成しevtest
ますが、Xでは選択されません。この問題をどのように解決しますか?
質問2:
入力デバイスを介して動作するメディアキーは複数のスキャンコードを送信し、私が知っている限り、図に示されている次の9
方法を使用して複数のキーを再マッピングする方法はありません。hwdb
ここ。以下はメディアキーから送信されたスキャンコードです。F7
Event: time 1430059493.552417, -------------- EV_SYN ------------
Event: time 1430059493.560416, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e0
Event: time 1430059493.560416, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 0
Event: time 1430059493.560416, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e3
Event: time 1430059493.560416, type 1 (EV_KEY), code 125 (KEY_LEFTMETA), value 0
Event: time 1430059493.560416, -------------- EV_SYN ------------
複数のスキャンコードを単一のイベントにバインドする方法がわかりません。現在、Xはすべての個々のキーを検出してそのイベントにマッピングしています。たとえば、上記の出力に基づいてsend時にF7
メディアキーがありますCtrl+Alt+Scanner
。 Google検索結果が出ない場合はどうすればよいですか?
答え1
Fnキーを再マップする代わりに+を押すと、Fボタンをマルチメディアボタンの代わりにFボタンに固定できます。もう一度CapsLock押すと、その逆も同様です。
答え2
xf86-input-joystickパッケージをアンインストールした後、最終的に同じ問題が発生して問題が解決しました。 https://forum.manjaro.org/t/microsof-all-in-one-keyboard-problem/15560