Microsoftキーボードメディアキーの問題

Microsoftキーボードメディアキーの問題

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

関連情報