Como permitir funções principais enquanto a área de trabalho é bloqueada

16

É possível permitir que as teclas de volume do teclado continuem funcionando quando sua área de trabalho está bloqueada? Atualmente, o comportamento padrão desabilita todas as teclas de função especiais até que a área de trabalho seja desbloqueada. Eu gosto de usar meu PC como tocador de música e deixá-lo bloqueado quando não estou diretamente no console, mas ainda quero permitir que as pessoas controlem o volume se uma música estiver muito alta.

    
por Cerin 17.04.2012 / 19:52

1 resposta

6

Um tanto vergonhoso, mas como não parecia haver nenhuma solução existente, e como a tarefa parecia relativamente direta, eu escrevi um simples daemon do Python para resolver o problema. Ele usa a API python-xlib para capturar pressionamentos de teclas em todo o sistema e, em seguida, executa comandos personalizados do shell. Ele assume uma configuração básica Debian / Ubuntu, mas provavelmente funcionaria na maioria dos sistemas Linux com alguns ajustes.

No meu caso, as teclas de volume para cima / baixo mapeiam para o código 122/123, então os comandos correspondentes para diminuir ou aumentar o volume somente quando a área de trabalho está bloqueada são:

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%'

Evidentemente, isso é um pouco detalhado. O segundo grep é encontrar a interface de som ativa em sistemas que podem ter vários (por exemplo, meu laptop tem uma interface de mestre e fone de ouvido, permitindo que esses comandos controlem também).

Edit: Isso não funciona mais no Ubuntu 16. Todas as funções do X parecem ficar desativadas, mesmo a partir do terminal, uma vez que a tela bloqueia.

    
por Cerin 27.05.2012 / 04:53