ตกลงพบสิ่งนี้ที่ https://help.ubuntu.com/community/MultimediaKeys
เมื่อคุณกดปุ่มบนแป้นพิมพ์ของคุณเคอร์เนล linux จะสร้าง scancode แบบดิบ (ถ้าได้รับการกำหนด) แต่ละ scancode สามารถแม็พกับ keycode นี่คือที่ระดับเคอร์เนล X มีวิธีการทำแผนที่คีย์อิสระทั้งหมด (เสมือน): X อ่านตารางรหัสเคอร์เนลเมื่อเริ่มต้นจากนั้นจับคู่รหัสไปยังตารางรหัสคีย์อิสระ (เหมือนกับรหัสเคอร์เนล แต่แตกต่างกัน :)) จากนั้นแต่ละรหัสสามารถแมปไปยัง keysym เช่นสตริงที่เป็นตัวแทนของคีย์หรือแนะนำการกระทำ ดังนั้นเพื่อให้คีย์ของเราทำงานได้อย่างสมบูรณ์พวกเขาต้องการเคอร์เนล scancode / keycode บวก X keycode / keysym อาจดูเหมือนแปลก แต่นักพัฒนา X มีเหตุผลในการแยกการแมปคีย์บอร์ดจากเคอร์เนล มันไม่ยากเลยเพียงแค่ขั้นตอนที่ค่อนข้างน่าเบื่อ
ดังนั้นรหัสของจะถูกแมปไปยัง keysym's ดังนั้นรหัสของอยู่ที่ไหน ฉันพบและตอบคำถามนี้: ฉันจะค้นหารายการ X keysyms ทั้งหมดได้ที่ไหน เนื่องจากเรากำลังพูดถึงปุ่มปรับระดับเสียงมันจะอยู่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 ได้อย่างไร ) อย่างไรก็ตามการแจ้งเตือนดูเหมือนจะเป็นอิสระราวกับว่าพวกเขากำลังหยิบขึ้นมากดปุ่มและดำเนินการตามนั้นมันอาจหมายความว่าโปรแกรมอื่น ๆ ในอูบุนตูได้รับการตั้งค่าด้วยวิธีนี้ดังนั้นจึงไม่จำเป็นต้องแมปสคริปต์กับคีย์
ดังนั้นฉันค่อนข้างแน่ใจว่าตอนนี้โปรแกรมกำลังรวบรวมคีย์ (ดังนั้นจึงไม่สามารถพบเหรียญได้)
ใน Xubuntu ฉันมีปัญหากับ Pulse Audio และใช้สคริปต์ที่กำหนดเองเพื่อเปลี่ยนระดับเสียงดูเหมือนว่า Pulse กำลังสกัดกั้นปุ่มปิดเสียงปุ่มปิดเสียงปิดเสียง Alsa และ PulseAudio แต่เปิดเสียงเฉพาะ Alsa ที่สร้างขึ้นเพื่อแก้ไขปัญหาที่น่าสนใจ
ลองใช้งาน NotifyOSD ดู https://wiki.ubuntu.com/NotifyOSD#Volume_changes
ถ้าคุณดูไดอะแกรมเหล่านี้: https://wiki.ubuntu.com/NotifyOSD#Ar Architecture
โดยเฉพาะอันนี้
มันแสดงให้เห็นว่ามี "ผู้ฟังคีย์ฮาร์ดแวร์" ซึ่งได้รับแบบฟอร์ม DBus หรือ HAL? จากนั้น "ดึงองค์ประกอบภาพจากระบบ" ซึ่งไอคอนเสียงและความสว่างอยู่ในแหล่งที่มาของ Notify-OSD จากนั้นสร้างฟองอากาศจากที่นั่น
นี่คือความสับสนอย่างบ้าคลั่ง แต่เท่าที่ฉันเข้าใจ (จนถึง):
raw scancode (เช่น e016)> keycode (เช่น 160)> keysym (เช่น XF86AudioMute)> gnome-settings-daemon (เช่นเพิ่มระดับเสียง)> สัญญาณ DBus> ฮาร์ดแวร์คีย์ - ฟังสำหรับแจ้งเตือน -osd (หรืออื่น ๆ โปรแกรมฟัง)