Ok, đã tìm thấy điều này tại https://help.ubfox.com/community/MultidiaKeys
Khi bạn nhấn một phím trên bàn phím, nhân linux sẽ tạo một scancode thô cho nó (nếu nó được gán). Mỗi scancode có thể được ánh xạ tới một mã khóa. Đây là ở cấp độ kernel. X có tổng số cách ánh xạ các khóa độc lập (gần như): X đọc bảng mã khóa nhân khi khởi động, sau đó ánh xạ mã khóa vào bảng mã khóa độc lập của nó (giống như mã khóa nhân nhưng khác nhau :)). Sau đó, mỗi mã khóa có thể được ánh xạ tới một keyym, nghĩa là một chuỗi đại diện cho một khóa hoặc đề xuất một hành động. Do đó, để các khóa của chúng ta có đầy đủ chức năng, chúng cần có mã khóa / mã khóa nhân cộng với mã khóa / keyym X. Điều này có vẻ kỳ lạ, nhưng các nhà phát triển X có lý do của họ để giữ một ánh xạ bàn phím riêng biệt từ kernel. Nó không khó chút nào, chỉ là một thủ tục khá tẻ nhạt.
Vì vậy, các mã khóa được ánh xạ tới các phím, Vậy các phím này ở đâu? Tôi đã tìm thấy và trả lời từ câu hỏi này: Tôi tìm thấy danh sách tất cả các từ khóa X ngày nay ở đâu? Vì chúng ta đang nói về các phím âm lượng, nó sẽ được tìm thấy trong XF86keysym.h
mã nguồn được đề cập trong câu trả lời.
Trong tập tin đó trên máy tính của tôi, tôi tìm thấy phần sau cho âm lượng:
#define XF86XK_AudioLowerVolume 0x1008FF11 /* Volume control down */
#define XF86XK_AudioMute 0x1008FF12 /* Mute sound from the system */
#define XF86XK_AudioRaiseVolume 0x1008FF13 /* Volume control up */
Lạ ... giá trị khác với bất cứ thứ gì khác, có thể có nhiều hệ thống để xử lý các khóa? http://crunchbang.org/forums/viewtopic.php?id=16656
Tôi đang sử dụng Xubfox và để điều khiển các phím, tôi cần ánh xạ các hành động theo cách thủ công (như thế này Làm cách nào để thay đổi các phím tắt trong xubfox? ). Tuy nhiên, các thông báo có vẻ độc lập như thể chúng đang bấm phím và hành động tương ứng, điều đó có nghĩa là các chương trình khác trong Ubuntu được thiết lập theo cách này, do đó không cần phải ánh xạ tập lệnh tới các phím.
Vì vậy, tôi khá chắc chắn rằng các chương trình hiện đang chọn khóa (vì vậy không tìm thấy đoạn mã nào).
Trong Xubfox tôi gặp vấn đề này với Pulse Audio và sử dụng các tập lệnh tùy chỉnh để thay đổi âm lượng, có vẻ như Pulse đã chặn phím Mute , phím tắt tiếng tắt tiếng Alsa và PulseAudio, nhưng chỉ tắt tiếng Alsa cho các cách giải quyết thú vị.
Kiểm tra điều này về NotifyOSD https://wiki.ubfox.com/NotifyOSD#Volume_changes
Nếu bạn xem sơ đồ này: https://wiki.ubfox.com/NotifyOSD#Arch architecture
Đặc biệt là cái này:
Nó cho thấy rằng có một "trình nghe khóa phần cứng" nhận dạng DBus hoặc HAL? Sau đó, nó "lấy phần tử hình ảnh từ hệ thống" mà các biểu tượng âm thanh và độ sáng nằm trong nguồn của Notify-OSD, và sau đó tạo ra bong bóng từ đó.
Đây là tất cả khó hiểu điên rồ, nhưng theo như tôi hiểu nó (cho đến nay):
raw scancode (ví dụ: e016)> keycode (ví dụ 160)> keyym (ví dụ: nghe chương trình)