Хорошо, нашел это на https://help.ubuntu.com/community/MultimediaKeys
Когда вы нажимаете клавишу на клавиатуре, ядро Linux генерирует необработанный скан-код для него (если он назначен). Каждый скан-код может быть сопоставлен с кодом ключа. Это на уровне ядра. X имеет (квази) полностью независимый способ сопоставления ключей: X при запуске читает таблицу кодов ядра, затем сопоставляет код с его независимой таблицей кодов (она такая же, как коды ядра, но отличается :)). Затем каждый код ключа может быть сопоставлен с ключом, то есть строкой, которая представляет ключ или предлагает действие. Таким образом, чтобы наши ключи работали в полном объеме, им нужен скан-код ядра / код ключа плюс код ключа X / keysym. Это может показаться странным, но у разработчиков 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? ). Однако уведомления кажутся независимыми, как будто они реагируют на нажатие клавиши и действуют соответственно. Это может означать, что другие программы в Ubuntu настроены таким образом, поэтому нет необходимости сопоставлять скрипты с клавишами.
Так что я совершенно уверен, что программы теперь подхватывают ключ (поэтому никаких скриптов не найти).
В 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)> gnome-settings-daemon (например, увеличение громкости)> сигнал DBus> аппаратный ключ-прослушиватель для notify-osd (или другой программа прослушивания)