Ok, encontré esto en https://help.ubuntu.com/community/MultimediaKeys
Cuando presiona una tecla en su teclado, el kernel de Linux genera un código de escaneo sin procesar (si está asignado). Cada código de escaneo se puede asignar a un código clave. Esto está al nivel del núcleo. X tiene una forma (cuasi) totalmente independiente de asignación de teclas: X lee la tabla de códigos de clave del núcleo al inicio, luego asigna el código de clave a su tabla de códigos de clave independiente (es lo mismo que los códigos de clave del núcleo pero diferente :)). Luego, cada código clave se puede asignar a un símbolo clave, es decir, una cadena que representa una tecla o sugiere una acción. Por lo tanto, para que nuestras teclas sean completamente funcionales, necesitan un código de escaneo / código clave del núcleo más un código clave X / keyym. Puede parecer extraño, pero los desarrolladores de X tienen su razón para mantener una asignación de teclado separada del núcleo. No es nada difícil, solo un procedimiento bastante tedioso.
Entonces, los códigos clave se asignan a keyym, ¿dónde están los keyym? Encontré y respondí a esta pregunta: ¿Dónde encuentro una lista de todos los X keysyms en estos días? Como estamos hablando de las teclas de volumen, se encontrará XF86keysym.h
en el código fuente mencionado en la respuesta.
En ese archivo en mi computadora encontré lo siguiente para el volumen:
#define XF86XK_AudioLowerVolume 0x1008FF11 /* Volume control down */
#define XF86XK_AudioMute 0x1008FF12 /* Mute sound from the system */
#define XF86XK_AudioRaiseVolume 0x1008FF13 /* Volume control up */
Extraño ... valores diferentes de cualquier otra cosa, ¿tal vez hay múltiples sistemas para manejar claves? http://crunchbang.org/forums/viewtopic.php?id=16656
Estoy usando Xubuntu, y para controlar las teclas, necesito asignar las acciones manualmente (de esta manera ¿Cómo cambio los atajos de teclado en xubuntu? ). Sin embargo, las notificaciones parecen independientes, como si estuvieran captando la pulsación de teclas y actuando en consecuencia. Puede significar que otros programas en Ubuntu están configurados de esta manera, por lo que no hay necesidad de asignar scripts a las teclas.
Así que estoy bastante seguro de que los programas ahora están recogiendo la clave (por lo que no se encuentran scripts).
En Xubuntu tuve este problema con Pulse Audio y el uso de secuencias de comandos personalizadas para cambiar el volumen, parecía que Pulse estaba interceptando la tecla Silencio , la tecla Silencio silencia Alsa y PulseAudio, pero solo activa Alsa para soluciones interesantes.
Mira esto sobre NotifyOSD https://wiki.ubuntu.com/NotifyOSD#Volume_changes
Si observa estos diagramas: https://wiki.ubuntu.com/NotifyOSD#Architecture
Especialmente este:
Muestra que hay un "escucha de claves de hardware" que recibe el formulario DBus o HAL? Luego "recupera el elemento visual del sistema", que los iconos de sonido y brillo están en la fuente de Notify-OSD, y luego hace la burbuja desde allí.
Todo esto es una locura confusa, pero por lo que yo entiendo (hasta ahora):
raw scancode (ej. e016)> keycode (ej. 160)> keysym (ej. XF86AudioMute)> gnome-settings-daemon (ej. subir volumen)> señal DBus> hardware-keys-listener para notificar-osd (u otro programa de escucha)