Agak dari plug memalukan, tetapi karena tampaknya tidak ada solusi yang ada, dan karena tugas itu tampaknya relatif lurus ke depan, saya menulis daemon Python sederhana untuk memperbaiki masalah. Ia menggunakan API python-xlib untuk menangkap penekanan tombol di seluruh sistem dan kemudian menjalankan perintah shell kustom. Ini mengasumsikan pengaturan dasar Debian / Ubuntu, tetapi mungkin akan bekerja pada sebagian besar sistem Linux dengan beberapa penyesuaian.
Untuk kasus saya, tombol volume atas / bawah memetakan ke kode 122/123, sehingga perintah yang sesuai untuk menurunkan atau menambah volume hanya ketika desktop dikunci adalah:
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%'
Memang, itu agak bertele-tele. Grep kedua adalah menemukan antarmuka suara aktif pada sistem yang mungkin memiliki beberapa (misalnya laptop saya memiliki antarmuka Master dan Headphone, yang memungkinkan perintah-perintah ini untuk mengontrol keduanya).
Sunting: Ini tidak lagi berfungsi pada Ubuntu 16. Semua fungsi X tampaknya menjadi dinonaktifkan, bahkan dari terminal, setelah layar terkunci.