Capslock 키를 재생 / 일시 정지 키로 설정
이 솔루션은 capslock 키의 스캔 코드를 커널 입력 드라이버의 다른 키 코드 (이 경우 재생 / 일시 중지)에 다시 매핑합니다.
장점
- 기존 시스템 파일을 수정할 필요가 없습니다 (새 파일 하나만 작성하면 됨)
- 응용 프로그램은 실제로 Capslock 키임을 알지 못하지만 실제 재생 / 일시 정지 키를 눌렀다 고 생각합니다.
- Capslock을 비활성화 할 필요가 없으며
xkb
구성 을 엉망으로 만들 가능성이 없습니다.
단점
- 각 키보드에 대해 개별적으로 수행해야합니다 (상황에 따라 이점이 될 수 있음).
전제 조건
- evtest (를 통해 설치 가능
sudo apt-get install evtest
)
순서
터미널에서 sudo evtest
키보드를 실행 하고 선택하십시오. 키를 누를 때 출력이 없으면 Ctrl+를 누르고 C다른 장치를 사용해보십시오. 선택한 장치 이벤트 번호를 기억하십시오. 나중에 필요합니다. Capslock 키를 누릅니다. 다음과 같은 일부 줄이 나타납니다.
Event: time 1529406021.187148, -------------- SYN_REPORT ------------
Event: time 1529406021.218427, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70039
Event: time 1529406021.218427, type 1 (EV_KEY), code 58 (KEY_CAPSLOCK), value 0
MSC_SCAN
줄 앞의 KEY_CAPSLOCK
줄에 값이 필요합니다 . 위의 예에서 이것은 70039이지만 키보드의 스캔 코드는 다를 수 있습니다.
이제 다음 명령을 실행하되 X를 evtest
명령에 사용한 장치 이벤트 번호로 바꾸십시오 .
grep "" /sys/class/input/eventX/device/id/*
...이 출력됩니다 bustype
, product
, vendor
그리고 version
키보드.
라는 이름의 파일 작성 65-keyboard-custom.hwdb
에 /etc/udev/hwdb.d/
다음과 같은 내용으로 (루트 권한이 필요)를 :
evdev:input:b[bustype]v[vendor]p[product]e[version]*
KEYBOARD_KEY_[scancode]=playpause
...어디
- [bus], [vendor], [product] 및 [version]은 정확히 4 자이며 대문자는 대문자 여야합니다.
- [scancode]는 소문자 여야합니다
evdev:...
라인은 없습니다 에는 앞의 공간을
KEYBOARD_KEY...
라인이 정확히 하나 개의 앞 공간을
예를 들면 다음과 같습니다.
evdev:input:b0003v046DpC228e0110*
KEYBOARD_KEY_70039=playpause
마지막으로, 새 구성을 하드웨어 데이터베이스로 컴파일하십시오.
sudo systemd-hwdb update
변경 사항을 즉시 적용하려면 udev에 알리십시오.
sudo udevadm trigger
변경 사항을 되돌리려면 생성 한 파일을 제거하고 재부팅하십시오.
이 주제에 대한 나의 원래 답변 에서 더 자세한 정보를 찾을 수 있습니다 .
vlc --key-play-pause <key-string>
있지만, VLC가 capslock으로 받아 들일 문자열을 찾지 못했습니다 ...