Est-il possible de permettre aux touches de volume d'un clavier de continuer à fonctionner lorsque votre bureau est verrouillé? Actuellement, le comportement par défaut désactive toutes les touches de fonction spéciales jusqu'à ce que le bureau soit déverrouillé. J'aime utiliser mon PC comme lecteur de musique et le laisser verrouillé lorsque je ne suis pas directement sur la console, mais je veux tout de même laisser les gens contrôler le volume si une chanson est trop forte.
Un plug quelque peu honteux, mais comme il ne semblait pas exister de solution existante et que la tâche semblait relativement simple, j'ai écrit un simple démon Python à corriger le problème. Il utilise l’API python-xlib pour capturer les appuis sur l’ensemble du système, puis exécuter des commandes Shell personnalisées. Il suppose une configuration de base Debian/Ubuntu, mais fonctionnerait probablement sur la plupart des systèmes Linux avec quelques ajustements.
Dans mon cas, les touches d'augmentation/de diminution du volume correspondent au code 122/123; les commandes correspondantes permettent donc d'augmenter ou de diminuer le volume uniquement lorsque le bureau est verrouillé sont:
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%'
Certes, c'est un peu prolixe. La deuxième méthode consiste à rechercher l’interface audio active sur des systèmes pouvant en avoir plusieurs (mon ordinateur portable, par exemple, possède une interface maître et une interface pour casque, permettant à ces commandes de contrôler l’un ou l’autre).
Edit: Cela ne fonctionne plus à partir d’Ubuntu 16. Toutes les fonctions X semblent être désactivées, même à partir du terminal, une fois l’écran verrouillé.