ค่อนข้างน่าอับอายปลั๊กอิน แต่เนื่องจากดูเหมือนจะไม่มีวิธีแก้ไขปัญหาใด ๆ ที่มีอยู่และเนื่องจากงานดูเหมือนค่อนข้างตรงไปข้างหน้าฉันจึงเขียนPython daemon อย่างง่ายเพื่อแก้ไขปัญหา มันใช้ python-xlib API เพื่อดักจับการกดปุ่มทั้งระบบและจากนั้นรันคำสั่งเชลล์แบบกำหนดเอง มันถือว่าเป็นการตั้งค่าพื้นฐาน Debian / Ubuntu แต่อาจจะใช้ได้กับระบบ Linux ส่วนใหญ่ที่มีการปรับแต่งเล็กน้อย
สำหรับกรณีของฉันปุ่มปรับระดับเสียงขึ้น / ลงจะจับคู่กับรหัส 122/123 ดังนั้นคำสั่งที่เกี่ยวข้องเพื่อลดระดับเสียงหรือเพิ่มระดับเสียงเฉพาะเมื่อเดสก์ท็อปถูกล็อค :
gnome-screensaver-command -q | grep "is active" && bash -c '/usr/bin/pactl -- set-sink-volume `pacmd list-sinks | grep -P -o "(?<=\* index: )[0-9]+"` -10%'
gnome-screensaver-command -q | grep "is active" && bash -c '/usr/bin/pactl -- set-sink-volume `pacmd list-sinks | grep -P -o "(?<=\* index: )[0-9]+"` +10%'
เป็นที่ยอมรับว่าเป็นสิ่งที่ละเอียดมาก grep ตัวที่สองคือการหาส่วนต่อประสานเสียงที่ใช้งานอยู่บนระบบที่อาจมีหลายอย่าง (เช่นแล็ปท็อปของฉันมีส่วนต่อประสานหลักและชุดหูฟังทำให้คำสั่งเหล่านี้สามารถควบคุมได้)
แก้ไข: ไม่สามารถใช้งานได้อีกต่อไปในขณะที่ Ubuntu 16 ฟังก์ชั่น X ทั้งหมดดูเหมือนจะปิดการใช้งานแม้กระทั่งจากเครื่องเทอร์มินัลเมื่อล็อคหน้าจอ