Microsoft 올인원 무선 미디어 키보드(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이 생성하는 것입니다. 장치에는 두 개의 키보드가 있으며 그 중 하나에는 특수 키보드가 있습니다.(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는 모든 개별 키를 감지하여 해당 이벤트에 매핑하고 있습니다. 예를 들어, 위의 출력을 기반으로 F7
send 시 미디어 키가 있습니다 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