วิธีการช่วยให้การทำงานที่สำคัญในขณะที่สก์ท็อปล็อค


20

เป็นไปได้ไหมที่จะอนุญาตให้ปุ่มปรับระดับเสียงของแป้นพิมพ์ทำงานต่อไปได้เมื่อเดสก์ท็อปของคุณถูกล็อค? ปัจจุบันพฤติกรรมเริ่มต้นจะปิดการใช้งานปุ่มฟังก์ชั่นพิเศษทั้งหมดจนกระทั่งเดสก์ทอปปลดล็อค ฉันชอบที่จะใช้พีซีเป็นเครื่องเล่นเพลงและปล่อยให้มันล็อคเมื่อฉันไม่ได้อยู่ที่คอนโซลโดยตรง แต่ฉันยังต้องการให้ผู้คนควบคุมระดับเสียงถ้าเพลงดังเกินไป


+1! ฉันเดิมพันว่าผลข้างเคียงของสิ่งนี้ (ถ้าเป็นไปได้) คือการไม่ปลุกจอแสดงผลการนอนหลับอีกครั้งซึ่งเป็นสิ่งที่ฉันเคยสงสัยมาก่อน
David Oneill

1
ฉันต้องการที่จะมีฟังก์ชั่นนี้มากเกินไป ไม่เพียง แต่สำหรับระดับเสียง แต่ยังสำหรับปุ่มควบคุมเพลง (เล่น, หยุดชั่วคราว; ถัดไป; ก่อนหน้า)
jPlatte

ในฐานะที่เป็นกันขณะที่ฉันอัพเกรดฉันหันหน้าจอของฉันลงไปที่การตั้งค่าต่ำสุด ผ่านการติดตั้งไปครึ่งทางฉันไม่สามารถเปิดเครื่องได้ สร้างขึ้นเพื่อประสบการณ์ที่น่าสนใจ ..
Will Richardson

ฉันสงสัยว่าคีย์สื่อสามารถทำให้เป็นอุปกรณ์ LIRC ปลอมบางประเภทได้หรือไม่โดยอ้างว่าเป็นรีโมตคอนโทรล ... อย่างน้อยแนวคิดก็เหมาะสมแล้วใช่ไหม?
taneli

คำตอบ:


9

ค่อนข้างน่าอับอายปลั๊กอิน แต่เนื่องจากดูเหมือนจะไม่มีวิธีแก้ไขปัญหาใด ๆ ที่มีอยู่และเนื่องจากงานดูเหมือนค่อนข้างตรงไปข้างหน้าฉันจึงเขียน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 ทั้งหมดดูเหมือนจะปิดการใช้งานแม้กระทั่งจากเครื่องเทอร์มินัลเมื่อล็อคหน้าจอ


1
ฉันเพิ่งได้ทำงานกับ Ubuntu 18.04 ฉันได้ไปแทนที่ "การทดสอบถูกล็อค" กับgdbus call -e -d com.canonical.Unity -o /com/canonical/Unity/Session -m com.canonical.Unity.Session.IsLocked | grep -ioP "true"ขึ้นอยู่กับaskubuntu.com/a/890802/627247เพราะฉันไม่ได้ใช้ gnome-screesaver แต่หลังจากนั้นไม่มีปัญหาที่ทุกคน
เฟเบียนเอ็น

ฉันสามารถยืนยันได้ว่ามันใช้งานได้กับ Ubuntu 16.04 เช่นกัน เพื่อหลีกเลี่ยงความสับสน "การทดสอบถูกล็อค" ที่กล่าวถึงโดย Fabian N. หมายถึงการแทนที่gnome-screensaver-command -q | grep "is active"บรรทัดที่ 160--165 ของ freekey.py หรือโดยตรงในไฟล์การกำหนดค่าตามที่เขาแนะนำ
Pierre Thalamy

ในระบบของฉัน171 gdbus call -e -d com.canonical.Unity -o /com/canonical/Unity/Session -m com.canonical.Unity.Session.IsLocked | grep -ioP "true" && bash -c 'rhythmbox-client --next'ทำงานได้อย่างสมบูรณ์แบบสำหรับเพลงต่อไปใน rhythmbox ฉันยังคงทำงานกับตัวควบคุมก่อนหน้าและตัวควบคุมอื่น ๆ แต่มันจะไปถึงที่นั่น
John Hamilton
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.