Existe-t-il un moyen sophistiqué de faire fonctionner l'OSD de notification de volume avec pulseaudio et ALSA? Pour le moment, les ordinateurs de bureau standard ne fonctionnent qu'avec pulseaudio pour moi. Que diriez-vous d'un OSD vertical que je peux utiliser comme remplacement de remplacement ou appeler à partir de la ligne de commande pour signaler graphiquement les changements de pourcentages arbitraires, comme une barre qui monte et descend?
La raison pour laquelle j'en ai besoin pour travailler avec ALSA et pulseaudio est que j'utilise une application WINE qui ne fonctionne pas bien avec pulse, donc je tue pulse avant de démarrer l'application Windows pour utiliser ALSA sans la couche d'abstraction supplémentaire. Quand j'ai réalisé que les touches de volume de mon clavier ne fonctionnaient pas sans impulsion, j'ai écrit des scripts bash que j'appelle avec Compiz ou Openbox (configurés via CCSM et lxde-rc.xml, respectivement) pour capter le signal de sortie de pulseaudio --check
et puis réglez le volume en conséquence:
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
Les scripts fonctionnent très bien et mappent très bien sur les boutons, mais je n'ai plus de bon moyen de voir les commentaires visuels - pas même avec ceux pulseaudio puisque j'attrape les événements de bouton (XF86AudioLowerVolume, etc.). Évidemment, je pourrais simplement mapper les touches de volume ALSA à autre chose, mais il n'y a aucun sens à dupliquer les touches de raccourci.
J'ai trouvé un contrôle de volume python que je peux appeler dans les scripts ci-dessus:
https://github.com/fishman/utils/blob/master/pvol.py
pvol.py -s
affiche le niveau de volume actuel à l'écran pour ALSA et pulseaudio, mais il est terriblement petit par rapport à l'OSD gnome que j'avais utilisé, et il n'est pas vertical (barre en haut, ancien OSD en bas):
Donc, je l'ai agrandi et l'ai floppé:
Mais, même en changeant l'orientation en verticale, le thème GTK par défaut bleu n'est pas aussi lisse que VLC (voir ci-dessous).
Une grande partie de ce que j'ai trouvé en recherchant des implémentations OSD sont des publications sur les commandes notify-send qui manquent de tout le concept de barre de progression. Sinon, il s'agit principalement de barres horizontales (et de nombreux espaces réservés de comptage dans les scripts bash). Vraiment tout ce que je dois faire est d'appeler amix & pactl, donc quelque chose de simple comme la barre de progression gtk dans pvol.py serait génial - juste pas si bleu et pas juste au milieu de l'écran.
VLC a un bon exemple de ce que j'ai à l'esprit lorsque vous faites défiler la molette de la souris en mode plein écran:
C'est beaucoup moins obstructif que les cases habituelles qui se trouvent au centre de l'écran:
Toute l'analogie avec le curseur horizontal n'a jamais eu beaucoup de sens pour moi en dehors du panoramique audio entre les haut-parleurs gauche et droit.
Quoi qu'il en soit, comment se fait-il que les notifications de bureau par défaut soient appelées (en particulier LXDE)? Je vois beaucoup de messages sur la configuration des événements de presse clés, mais pas beaucoup sur les scripts que ces événements déclenchent. Quelles sont les autres options disponibles dans le département verticalement fantaisie?
De plus, y a-t-il un package que je devrais désinstaller pour éviter que des conflits ne surgissent entre les événements que je gère via les scripts et les commandes compiz ou openbox?
Mise à jour: Pour déterminer quel OSD j'utilise actuellement, je n'ai pas changé la façon dont je gère le bouton de sourdine tout de suite. Tuer xfce4-notifyd puis appuyer sur le bouton Muet engendre un nouveau processus xfce4-notifyd, donc je devinais que la grande icône du haut-parleur venait de quelque chose comme xfce4-volumed, mais je n'ai pas vraiment installé ce paquet ... Ah ha! Tuer gnome-settings-daemon arrête le gros OSD au centre de l'écran.