![일반화하다](https://linux55.com/image/100150/%EC%9D%BC%EB%B0%98%ED%99%94%ED%95%98%EB%8B%A4.png)
일반화하다
i3wm으로 전환하고 환경을 설정하려고 합니다. 저는 Apple 키보드(2007년경)를 사용하고 있습니다. 볼륨 키가 3개 있는데 매핑된 키코드를 찾을 수 없습니다.
분석하다
키 코드를 결정하는 방법에 대한 다른 온라인 가이드를 읽었습니다. 키가 무엇인지 알아내기 위해 이를 사용해 보았 xev
으나 키코드가 반환되지 않았습니다. 단지 말이 되지 않는 출력만 반환되었습니다.
FocusOut event, serial 33, synthetic NO, window 0x2200001,
mode NotifyGrab, detail NotifyAncestor
FocusIn event, serial 33, synthetic NO, window 0x2200001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 33, synthetic NO, window 0x0,
keys: 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
FocusOut event, serial 33, synthetic NO, window 0x2200001,
mode NotifyGrab, detail NotifyAncestor
FocusIn event, serial 33, synthetic NO, window 0x2200001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 33, synthetic NO, window 0x0,
keys: 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
처음 세 개의 "청크"는 "볼륨 크게" 키를 누르면 나오고, 마지막 세 개의 "청크"는 "볼륨 작게" 키를 누르면 나옵니다. 이 정보로는 시스템의 볼륨에 매핑할 수 있는 키코드가 무엇인지 알 수 없습니다.
그 전에는 GNOME(Fedora 25)을 사용하고 있었는데 GNOME이 볼륨 키와 올바르게 작동했습니다. 따라서 커널이 키를 감지하지 못하는 것은 문제가 아니라고 생각합니다. 그놈이 키를 감지할 수 있기 때문입니다.
예상되는 동작
- "볼륨 작게" 키를 누르세요
xev
- 키 코드 받기
- i3wm 구성에 바인딩이 추가되었습니다.
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% # Increase sound volume
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% # Decrease sound volume
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle # Mute sound
- 볼륨 키를 사용하여 시스템 볼륨 조정
실제 행동
- "볼륨 작게" 키를 누르세요
xev
- 다른 출력을 수신했는데 키 코드가 없는 것 같습니다.
답변1
USB를 통해 연결된 키보드를 사용하고 있다고 가정합니다. 이는 당신이 사용해야 함을 의미합니다시험통과하다 evtest /dev/input/eventX
. 어떤 숫자가 "X"인지 알아내려면 를 사용하세요 ls -l /dev/input/by-id
. 내 경우에는 다음과 같습니다.
sudo evtest /dev/input/event6
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x5ac product 0x205 version 0x110
Input device name: "Mitsumi Electric Apple Extended USB Keyboard"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 113 (KEY_MUTE)
Event code 114 (KEY_VOLUMEDOWN)
Event code 115 (KEY_VOLUMEUP)
Event code 142 (KEY_SLEEP)
Event code 143 (KEY_WAKEUP)
Event code 150 (KEY_WWW)
Event code 155 (KEY_MAIL)
Event code 161 (KEY_EJECTCD)
Event code 163 (KEY_NEXTSONG)
Event code 164 (KEY_PLAYPAUSE)
Event code 165 (KEY_PREVIOUSSONG)
Event code 166 (KEY_STOPCD)
Event code 168 (KEY_REWIND)
Event code 208 (KEY_FASTFORWARD)
Event type 4 (EV_MSC)
Event code 4 (MSC_SCAN)
Properties:
Testing ... (interrupt to exit)
Event: time 1484112801.351497, type 4 (EV_MSC), code 4 (MSC_SCAN), value c00ea
Event: time 1484112801.351497, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 1
Event: time 1484112801.351497, -------------- SYN_REPORT ------------
Event: time 1484112801.479485, type 4 (EV_MSC), code 4 (MSC_SCAN), value c00ea
Event: time 1484112801.479485, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 0
Event: time 1484112801.479485, -------------- SYN_REPORT ------------