Existe uma maneira elegante de fazer com que o OSD de notificação de volume funcione com o pulseaudio e o ALSA? No momento, os desktops padrão só funcionam com o pulseaudio para mim. Que tal um OSD vertical que eu possa usar como uma queda na substituição ou ligar na linha de comando para relatar alterações graficamente em porcentagens arbitrárias, como uma barra que se move para cima e para baixo?
A razão pela qual eu preciso que ele trabalhe com o ALSA e com o pulseaudio é que estou usando um aplicativo WINE que não funciona bem com o pulso, então eu mato o pulso antes de iniciar o aplicativo Windows para usar o ALSA sem a camada extra de abstração. Quando percebi que as teclas de volume do teclado não funcionavam sem pulso, escrevi alguns scripts bash que chamo com o Compiz ou o Openbox (configurados por meio do CCSM e lxde-rc.xml, respectivamente) para capturar o sinal de saída de pulseaudio --check
e depois ajuste o volume de acordo:
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
Os scripts funcionam muito bem e são mapeados para os botões, mas não tenho mais uma boa maneira de ver o feedback visual - nem mesmo com os pulseaudio, pois estou capturando os eventos dos botões (XF86AudioLowerVolume, etc.). Obviamente, eu poderia apenas mapear as teclas de volume do ALSA para outra coisa, mas não faz sentido duplicar as teclas de atalho.
Encontrei um controle de volume python que posso chamar nos scripts acima:
https://github.com/fishman/utils/blob/master/pvol.py
pvol.py -s
mostra o nível de volume atual na tela para ALSA e pulseaudio, mas é muito pequeno comparado ao OSD gnome que eu estava usando e não é vertical (barra na parte superior, OSD antigo na parte inferior):
Então, eu a ampliei e a rodei:
Mas, mesmo com a mudança da orientação para a vertical, o tema GTK padrão azul não é tão liso quanto o VLC (veja abaixo).
Muito do que encontrei na pesquisa de implementações de OSD são posts sobre comandos de notificação-envio que não possuem o conceito completo da barra de progresso. Caso contrário, são principalmente barras horizontais (e muitos espaços reservados de contagem nos scripts bash). Na verdade, tudo o que preciso fazer é chamar amix & pactl, para que algo simples como a barra de progresso gtk no pvol.py seja ótimo - apenas não tão azul e nem bem no meio da tela.
O VLC tem um bom exemplo do que tenho em mente quando você rola a roda do mouse no modo de tela cheia:
É muito menos obstrutivo do que as caixas usuais que ficam no centro da tela:
Toda a analogia do controle deslizante horizontal nunca fez muito sentido para mim fora do áudio panorâmico entre os alto-falantes esquerdo e direito.
Enfim, como é que as notificações padrão da área de trabalho são chamadas (especialmente o LXDE)? Eu vejo muitas postagens sobre a configuração de eventos de pressionamento de tecla, mas não muito sobre quais scripts esses eventos acionam. Que outras opções existem no departamento de fantasia vertical?
Além disso, há algum pacote que devo desinstalar para evitar a ocorrência de conflitos entre os eventos que estou manipulando por meio de comandos de script e compiz ou openbox?
Atualização: Para descobrir qual OSD eu estou usando atualmente, não mudei a maneira como manuseio o botão mudo imediatamente. Matar o xfce4-notifyd e pressionar o botão mudo gera um novo processo do xfce4-notifyd, então eu acho que o ícone do alto-falante veio de algo como o xfce4-volumed, mas na verdade não tenho esse pacote instalado ... Ah! Matar o gnome-settings-daemon interrompe o grande OSD no centro da tela.