¿Es posible permitir que las teclas de volumen de un teclado continúen funcionando cuando su escritorio está bloqueado? Actualmente, el comportamiento predeterminado deshabilita todas las teclas de funciones especiales hasta que se desbloquea el escritorio. Me gusta usar mi PC como reproductor de música y dejarlo bloqueado cuando no estoy directamente en la consola, pero todavía quiero permitir que la gente controle el volumen si una canción está demasiado alta.
shortcut-keys
music
lock-screen
Cerin
fuente
fuente
Respuestas:
Un complemento un tanto vergonzoso, pero como no parecía haber ninguna solución existente, y dado que la tarea parecía relativamente sencilla, escribí un demonio Python simple para solucionar el problema. Utiliza la API python-xlib para capturar las pulsaciones de teclas en todo el sistema y luego ejecuta comandos de shell personalizados. Asume una configuración básica de Debian / Ubuntu, pero probablemente funcionaría en la mayoría de los sistemas Linux con algunos ajustes.
En mi caso, las teclas de subir / bajar volumen se asignan al código 122/123, por lo que los comandos correspondientes para bajar o subir el volumen solo cuando el escritorio está bloqueado son:
Es cierto que eso es un poco detallado. El segundo grep es encontrar la interfaz de sonido activa en sistemas que pueden tener varios (por ejemplo, mi computadora portátil tiene una interfaz Master y Headphone, lo que permite controlar estos comandos).
Editar: Esto ya no funciona a partir de Ubuntu 16. Todas las funciones X parecen deshabilitarse, incluso desde el terminal, una vez que la pantalla se bloquea.
fuente
gdbus call -e -d com.canonical.Unity -o /com/canonical/Unity/Session -m com.canonical.Unity.Session.IsLocked | grep -ioP "true"
base en askubuntu.com/a/890802/627247 porque no estoy usando el gnome-screesaver pero después de eso, no hay problema en absoluto.gnome-screensaver-command -q | grep "is active"
en las líneas 160--165 de freekey.py o directamente en el archivo de configuración por lo que sugiere.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'
funciona perfectamente para la próxima canción en rhythmbox. Todavía estoy trabajando en controles anteriores y otros pero llegará allí.