¿Hay alguna forma elegante de hacer que la OSD de notificación de volumen funcione con pulseaudio y ALSA? En este momento, las de escritorio estándar solo funcionan con pulseaudio para mí. ¿Qué tal un OSD vertical que puedo usar como una caída en el reemplazo o llamar desde la línea de comando para informar gráficamente los cambios en porcentajes arbitrarios, como una barra que se mueve hacia arriba y hacia abajo?
La razón por la que necesito que funcione tanto con ALSA como con pulseaudio es que estoy usando una aplicación WINE que no funciona bien con el pulso, por lo que elimino el pulso antes de iniciar la aplicación de Windows para usar ALSA sin la capa de abstracción adicional. Cuando me di cuenta de que las teclas de volumen en mi teclado no funcionaban sin pulso, escribí algunos scripts de bash que llamo con Compiz u Openbox (configurados a través de CCSM y lxde-rc.xml, respectivamente) para captar la señal de salida de pulseaudio --check
y luego ajuste el volumen en consecuencia:
vol_step_up
#!/bin/bash
pulseaudio --check
if [ $? -eq 0 ] ; then
pactl set-sink-volume 0 -- +3db
else
amixer -c0 set Master playback 3+
fi
vol_step_down
#!/bin/bash
pulseaudio --check
if [ $? -eq 0 ] ; then
pactl set-sink-volume 0 -- -3db
else
amixer -c0 set Master playback 3-
fi
Los scripts funcionan muy bien y se asignan a los botones muy bien, pero ya no tengo una buena forma de ver los comentarios visuales, ni siquiera con los de pulseaudio ya que estoy captando los eventos de los botones (XF86AudioLowerVolume, etc.). Obviamente, podría asignar las teclas de volumen ALSA a otra cosa, pero no tiene sentido duplicar las teclas de acceso directo.
Encontré un control de volumen de Python al que puedo llamar en los scripts anteriores:
https://github.com/fishman/utils/blob/master/pvol.py
pvol.py -s
muestra el nivel de volumen actual en pantalla para ALSA y pulseaudio, pero es terriblemente pequeño en comparación con el OSD de gnomo que había estado usando, y no es vertical (barra en la parte superior, OSD antiguo en la parte inferior):
Entonces, lo hice más grande y lo dejé caer:
Pero, incluso al cambiar la orientación a una vertical, el tema GTK predeterminado azul no es tan elegante como VLC (ver más abajo).
Gran parte de lo que he encontrado al buscar implementaciones de OSD son publicaciones sobre comandos de notificación y envío que carecen de todo el concepto de barra de progreso. De lo contrario, se trata principalmente de barras horizontales (y muchos marcadores de posición de conteo dentro de los scripts de bash). Realmente, todo lo que necesito hacer es llamar a amix & pactl, por lo que algo simple como la barra de progreso gtk en pvol.py sería genial, simplemente no tan azul y no justo en el medio de la pantalla.
VLC tiene un buen ejemplo de lo que tengo en mente al desplazar la rueda del mouse en modo de pantalla completa:
Es mucho menos obstructivo que las cajas habituales que se encuentran en el centro de la pantalla:
Toda la analogía del control deslizante horizontal nunca ha tenido mucho sentido para mí fuera del panorama del audio entre los altavoces izquierdo y derecho.
De todos modos, ¿cómo es que se llaman las notificaciones de escritorio predeterminadas (especialmente LXDE)? Veo muchas publicaciones sobre la configuración de eventos de pulsación de teclas, pero no mucho sobre qué scripts desencadenan esos eventos. ¿Qué otras opciones hay en el departamento de lujo vertical?
Además, ¿hay algún paquete que deba desinstalar para evitar que surjan conflictos entre los eventos que estoy manejando a través de scripts y comandos compiz o openbox?
Actualización: en aras de averiguar qué OSD estoy usando actualmente, no cambié la forma en que manejo el botón de silencio de inmediato. Al matar a xfce4-notifyd y luego presionar el botón de silencio se genera un nuevo proceso de xfce4-notifyd, así que supuse que el ícono del altavoz grande provenía de algo como xfce4-volumed, pero en realidad no tengo ese paquete instalado ... ¡Ah, ja! Matar a gnome-settings-daemon detiene el gran OSD en el centro de la pantalla.