Ok, l'ho trovato su https://help.ubuntu.com/community/MultimediaKeys
Quando si preme un tasto sulla tastiera, il kernel di Linux genera uno scancode grezzo per esso (se assegnato). Ogni scancode può essere mappato su un codice chiave. Questo è a livello di kernel. X ha un modo (quasi) totalmente indipendente di mappare le chiavi: X legge la tabella dei codici chiave del kernel all'avvio, quindi mappa il codice chiave alla sua tabella dei codici chiave indipendente (è lo stesso dei codici chiave del kernel ma diverso :)). Quindi ogni codice chiave può essere mappato su un keysym, cioè una stringa che rappresenta una chiave o suggerisce un'azione. Quindi, per avere le nostre chiavi perfettamente funzionanti, hanno bisogno di un kernel scancode / keycode più un X keycode / keysym. Può sembrare strano, ma gli sviluppatori X hanno il motivo per mantenere una mappatura della tastiera separata dal kernel. Non è affatto difficile, solo una procedura abbastanza noiosa.
Quindi i keycode sono mappati su keysym, quindi dove sono i keysym? Ho trovato e rispondo a questa domanda: dove trovo un elenco di tutti i tastierini X in questi giorni? Dato che stiamo parlando dei tasti del volume, questo si trova nel XF86keysym.h
codice sorgente menzionato nella risposta.
In quel file sul mio computer ho trovato quanto segue per il volume:
#define XF86XK_AudioLowerVolume 0x1008FF11 /* Volume control down */
#define XF86XK_AudioMute 0x1008FF12 /* Mute sound from the system */
#define XF86XK_AudioRaiseVolume 0x1008FF13 /* Volume control up */
Strano ... valori diversi da qualsiasi altra cosa, forse ci sono più sistemi per la gestione delle chiavi? http://crunchbang.org/forums/viewtopic.php?id=16656
Sto usando Xubuntu e per controllare i tasti, devo mappare le azioni manualmente (in questo modo Come posso cambiare le scorciatoie da tastiera in xubuntu? ). Tuttavia le notifiche sembrano indipendenti, come se stessero rilevando la pressione dei tasti e agendo di conseguenza, Potrebbe significare che altri programmi in Ubuntu sono impostati in questo modo, quindi non è necessario mappare gli script sui tasti.
Quindi sono abbastanza sicuro che i programmi stiano rilevando il tasto (quindi non è possibile trovare script).
In Xubuntu ho avuto questo problema con Pulse Audio e usando script personalizzati per cambiare il volume. Sembrava che Pulse stesse intercettando il tasto Mute , il tasto Mute silenziava Alsa e PulseAudio, ma riattiva solo Alsa per soluzioni alternative interessanti.
Dai un'occhiata a NotifyOSD https://wiki.ubuntu.com/NotifyOSD#Volume_changes
Se guardi questi diagrammi: https://wiki.ubuntu.com/NotifyOSD#Architecture
Soprattutto questo:
Mostra che esiste un "listener di chiavi hardware" che riceve il modulo DBus o HAL? Quindi "recupera l'elemento visivo dal sistema" che le icone di suono e luminosità sono nella fonte di Notify-OSD, e quindi crea la bolla da lì.
Tutto ciò è pazzesco e confuso, ma per quanto ne capisco (finora):
raw scancode (ex. e016)> keycode (ex. 160)> keysym (ex. XF86AudioMute)> gnome-settings-daemon (es. volume-up)> segnale DBus> hardware-keys-listener per notification-osd (o altro programma di ascolto)