좋아, https://help.ubuntu.com/community/MultimediaKeys 에서 찾았습니다.
키보드에서 키를 누르면, 리눅스 커널은 원시 스캔 코드를 생성합니다 (할당 된 경우). 각 스캔 코드는 키 코드에 매핑 될 수 있습니다. 이것은 커널 수준입니다. X는 (키) 총 독립적 인 키 매핑 방법을 가지고 있습니다 : X는 시작할 때 커널 키 코드 테이블을 읽은 다음 키 코드를 독립적 인 키 코드 테이블에 매핑합니다 (커널 키 코드와 동일하지만 다릅니다). 그런 다음 각 키 코드를 키심, 즉 키를 나타내거나 동작을 제안하는 문자열에 매핑 할 수 있습니다. 따라서 키가 완전히 작동하려면 커널 스캔 코드 / 키 코드와 X 키 코드 / 키 심이 필요합니다. 이상하게 보일지 모르지만 X 개발자는 커널과 별도의 키보드 매핑을 유지해야 할 이유가 있습니다. 전혀 어렵지 않고 아주 지루한 절차입니다.
따라서 키 코드는 키심에 매핑되므로 키 심은 어디에 있습니까? 나는이 질문에서 발견하고 대답합니다 : 요즘 모든 X 키심 목록을 어디서 찾을 수 있습니까? 우리는 볼륨 키에 대해 이야기하기 때문에 XF86keysym.h
대답에서 언급 한 소스 코드에서 찾을 수 있습니다 .
내 컴퓨터의 파일에서 볼륨에 대해 다음을 발견했습니다.
#define XF86XK_AudioLowerVolume 0x1008FF11 /* Volume control down */
#define XF86XK_AudioMute 0x1008FF12 /* Mute sound from the system */
#define XF86XK_AudioRaiseVolume 0x1008FF13 /* Volume control up */
이상한 ... 다른 것과 다른 값, 키 처리를위한 여러 시스템이 있습니까? http://crunchbang.org/forums/viewtopic.php?id=16656
Xubuntu를 사용하고 있으며 키를 제어하려면 조치를 수동으로 맵핑해야합니다 (이와 같이 xubuntu에서 키보드 단축키를 어떻게 변경합니까? ). 그러나 알림은 키 누름을 선택하고 그에 따라 작동하는 것처럼 독립적으로 보입니다. 우분투의 다른 프로그램이 이런 식으로 설정되어 스크립트를 키에 매핑 할 필요가 없음을 의미 할 수 있습니다.
따라서 프로그램이 이제 키를 집어 들고 있다고 확신합니다 (따라서 스크립을 찾을 수 없음).
Xubuntu에서는 Pulse Audio에서이 문제가 있었고 볼륨을 변경하기 위해 사용자 지정 스크립트를 사용했습니다. Pulse가 Mute 키를 차단하고 Mute 키는 Alsa 및 PulseAudio를 음소거 하는 것처럼 보였지만 Alsa 만 흥미로운 해결 방법으로 음소거를 해제했습니다 .
NotifyOSD에 대해 확인하십시오 https://wiki.ubuntu.com/NotifyOSD#Volume_changes
다음 다이어그램을 보면 : https://wiki.ubuntu.com/NotifyOSD#Architecture
특히 이것 하나 :
DBus 또는 HAL 양식을 수신하는 "하드웨어 키 리스너"가 있음을 나타냅니다. 그런 다음 사운드 및 밝기 아이콘이 Notify-OSD의 소스에있는 "시스템에서 시각적 요소를 검색"하여 거품을 만듭니다.
이것은 모두 혼란 스럽지만 내가 이해하는 한 (지금까지) :
원시 스캔 코드 (예 : e016)> 키 코드 (예 : 160)> keysym (예 : XF86AudioMute)> 그놈 설정 데몬 (예 : 볼륨 높이기)> DBus 신호> 알림 OS (또는 기타)의 하드웨어 키 수신기 프로그램 청취)