Hơi khó chịu, nhưng dường như không có giải pháp nào hiện có, và vì nhiệm vụ có vẻ tương đối đơn giản, tôi đã viết một trình nền Python đơn giản để khắc phục vấn đề. Nó sử dụng API python-xlib để chụp các phím bấm trên toàn hệ thống và sau đó chạy các lệnh shell tùy chỉnh. Nó giả định một thiết lập Debian / Ubuntu cơ bản, nhưng có lẽ sẽ hoạt động trên hầu hết các hệ thống Linux với một vài điều chỉnh.
Đối với trường hợp của tôi, phím tăng / giảm âm lượng ánh xạ tới mã 122/123, do đó, các lệnh tương ứng để giảm hoặc tăng âm lượng chỉ khi màn hình nền bị khóa là:
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%'
Phải thừa nhận rằng, đó là một chút dài dòng. Grep thứ hai là tìm giao diện âm thanh hoạt động trên các hệ thống có thể có một số (ví dụ: máy tính xách tay của tôi có giao diện Chính và Tai nghe, cho phép các lệnh này điều khiển một trong hai).
Chỉnh sửa: Điều này không còn hoạt động kể từ Ubuntu 16. Tất cả các chức năng X dường như bị vô hiệu hóa, ngay cả từ thiết bị đầu cuối, một khi màn hình bị khóa.