Ok, encontrei isso em https://help.ubuntu.com/community/MultimediaKeys
Quando você pressiona uma tecla do teclado, o kernel do linux gera um scancode bruto para ela (se estiver atribuído). Cada scancode pode ser mapeado para um código de chave. Isso está no nível do kernel. X possui uma maneira (quase) total independente de mapear chaves: X lê a tabela de códigos de chave do kernel na inicialização e depois mapeia o código de chave para sua tabela de códigos de chave independente (é o mesmo que os códigos de chave do kernel, mas diferente :)). Em seguida, cada código-chave pode ser mapeado para um código-chave, ou seja, uma string que representa uma chave ou sugere uma ação. Portanto, para que nossas chaves estejam totalmente funcionais, elas precisam de um código de chave / código de chave do kernel mais um código de chave / código de chave X. Pode parecer estranho, mas os desenvolvedores do X têm motivos para manter um mapeamento de teclado separado do kernel. Não é nada difícil, apenas um procedimento bastante tedioso.
Então, os códigos de chave são mapeados para os chaves, então onde estão os códigos? Encontrei e respondo a esta pergunta: Onde encontro uma lista de todos os X academias de ginástica atualmente? Já que estamos falando sobre as teclas de volume, isso seria encontrado no XF86keysym.h
código-fonte mencionado na resposta.
Nesse arquivo no meu computador, encontrei o seguinte para volume:
#define XF86XK_AudioLowerVolume 0x1008FF11 /* Volume control down */
#define XF86XK_AudioMute 0x1008FF12 /* Mute sound from the system */
#define XF86XK_AudioRaiseVolume 0x1008FF13 /* Volume control up */
Estranho ... valores diferentes de qualquer outra coisa, talvez haja vários sistemas para manipular chaves? http://crunchbang.org/forums/viewtopic.php?id=16656
Estou usando o Xubuntu e, para controlar as teclas, preciso mapear as ações manualmente (como esta: Como altero os atalhos do teclado no xubuntu? ). No entanto, as notificações parecem independentes, como se estivessem pressionando a tecla e agindo de acordo. Isso pode significar que outros programas no Ubuntu são configurados dessa maneira, portanto, não há necessidade de mapear scripts para as teclas.
Portanto, tenho certeza de que os programas estão pegando a chave (portanto, nenhum script foi encontrado).
No Xubuntu, tive esse problema com o Pulse Audio e usando scripts personalizados para alterar o volume. Parecia que o Pulse estava interceptando a tecla Mute , a tecla Mute silencia Alsa e PulseAudio, mas reativa o som apenas Alsa para soluções alternativas interessantes.
Verifique isso no NotifyOSD https://wiki.ubuntu.com/NotifyOSD#Volume_changes
Se você olhar para Estes diagramas: https://wiki.ubuntu.com/NotifyOSD#Architecture
Especialmente este:
Isso mostra que existe um "ouvinte de chaves de hardware" que recebe o formulário DBus ou HAL? Em seguida, "recupera o elemento visual do sistema", onde os ícones de som e brilho estão na fonte do Notify-OSD, e então faz a bolha a partir daí.
Isso tudo é muito confuso, mas até onde eu entendi (até agora):
scancode bruto (por exemplo, e016)> código-chave (por exemplo, 160)> keysym (por exemplo, XF86AudioMute)> gnome-settings-daemon (por exemplo, aumento de volume)> sinal DBus> sinal de escuta de hardware para o OSD de notificação (ou outro escuta de programa)