Ok, dies finden Sie unter https://help.ubuntu.com/community/MultimediaKeys
Wenn Sie eine Taste auf Ihrer Tastatur drücken, generiert der Linux-Kernel einen unformatierten Scancode für ihn (sofern dieser zugewiesen ist). Jeder Scancode kann einem Keycode zugeordnet werden. Dies ist auf Kernel-Ebene. X hat eine (quasi) völlig unabhängige Art, Schlüssel zuzuordnen: X liest die Kernel-Schlüsselcodetabelle beim Start und ordnet dann den Schlüsselcode seiner unabhängigen Schlüsselcodetabelle zu (er ist derselbe wie die Kernel-Schlüsselcodes, aber unterschiedlich :)). Dann kann jeder Schlüsselcode einem Schlüssel zugeordnet werden, dh einer Zeichenfolge, die einen Schlüssel darstellt oder eine Aktion vorschlägt. Damit unsere Schlüssel voll funktionsfähig sind, benötigen sie einen Kernel-Scancode / Keycode sowie einen X-Keycode / Keysym. Es mag seltsam erscheinen, aber X-Entwickler haben ihren Grund, eine vom Kernel getrennte Tastaturzuordnung beizubehalten. Es ist überhaupt nicht schwierig, nur ein ziemlich langwieriger Vorgang.
Also werden Keycodes auf Keysyms abgebildet. Also, wo sind die Keysyms? Ich habe folgende Frage gefunden und beantwortet: Wo finde ich derzeit eine Liste aller X-Schlüsselwörter? Da es sich um die Lautstärketasten handelt, finden Sie sie im XF86keysym.h
in der Antwort genannten Quellcode.
In dieser Datei auf meinem Computer habe ich Folgendes für Volume gefunden:
#define XF86XK_AudioLowerVolume 0x1008FF11 /* Volume control down */
#define XF86XK_AudioMute 0x1008FF12 /* Mute sound from the system */
#define XF86XK_AudioRaiseVolume 0x1008FF13 /* Volume control up */
Seltsam ... andere Werte als alles andere, vielleicht gibt es mehrere Systeme für den Umgang mit Schlüsseln? http://crunchbang.org/forums/viewtopic.php?id=16656
Ich verwende Xubuntu, und um die Tasten zu steuern, muss ich die Aktionen manuell zuordnen (wie folgt: Wie ändere ich meine Tastaturkürzel in Xubuntu? ). Die Benachrichtigungen scheinen jedoch unabhängig zu sein, als würden sie beim Drücken einer Taste abgerufen und entsprechend gehandelt. Dies kann bedeuten, dass andere Programme in Ubuntu auf diese Weise eingerichtet werden, sodass den Tasten keine Skripte zugeordnet werden müssen.
Ich bin mir also ziemlich sicher, dass jetzt Programme auf den Schlüssel zugreifen (es sind also keine Skripte zu finden).
In Xubuntu hatte ich dieses Problem mit Pulse Audio und benutzte benutzerdefinierte Skripte, um die Lautstärke zu ändern. Es schien, als würde Pulse die Mute-Taste, die Mute-Taste Alsa und PulseAudio abfangen, aber nur Alsa wurde für interessante Problemumgehungen aktiviert .
Informieren Sie sich über NotifyOSD https://wiki.ubuntu.com/NotifyOSD#Volume_changes
Wenn Sie nach folgenden Diagrammen suchen: https://wiki.ubuntu.com/NotifyOSD#Architecture
Vor allem dieses:
Es zeigt, dass es einen "Hardware Key Listener" gibt, der Form DBus oder HAL empfängt? Anschließend wird "das visuelle Element vom System abgerufen", dessen Sound- und Helligkeitssymbole sich in der Quelle von Notify-OSD befinden, und von dort aus die Blase erzeugt.
Das ist alles verrückt verwirrend, aber soweit ich es verstehe (soweit):
raw scancode (ex. e016)> keycode (ex. 160)> keysym (ex. XF86AudioMute)> gnome-settings-daemon (ex. volume-up)> dbussignal> hardware-key-listener für notify-osd (oder andere Programm hören)