Gibt es eine ausgefallene Möglichkeit, das Volume-Benachrichtigungs-OSD sowohl mit pulseaudio als auch mit ALSA zusammenarbeiten zu lassen? Momentan funktionieren die Standard-Desktops nur mit pulseaudio für mich. Wie wäre es mit einem vertikalen OSD, das ich als Ersatz verwenden oder über die Befehlszeile aufrufen kann, um Änderungen in willkürlichen Prozentsätzen grafisch als Balken anzuzeigen, der sich nach oben und unten bewegt?
Der Grund, warum ich es für die Arbeit mit ALSA und pulseaudio benötige, ist, dass ich eine WINE-Anwendung verwende, die mit pulse nicht gut funktioniert. Daher bringe ich pulse zum Erliegen, bevor ich die Windows-App starte, um ALSA ohne die zusätzliche Abstraktionsebene zu verwenden. Als ich feststellte, dass die Lautstärketasten auf meiner Tastatur nicht ohne Puls arbeiteten, schrieb ich einige Bash-Skripte, die ich entweder mit Compiz oder Openbox (konfiguriert über CCSM bzw. lxde-rc.xml) aufrief, um das Ausgangssignal von pulseaudio --check
und abzufangen Stellen Sie dann die Lautstärke entsprechend ein:
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
Die Skripte funktionieren hervorragend und die Zuordnung zu den Schaltflächen ist in Ordnung, aber ich kann das visuelle Feedback nicht mehr gut sehen - nicht einmal bei den pulseaudio-Skripten, da ich die Schaltflächenereignisse (XF86AudioLowerVolume usw.) abfange. Natürlich könnte ich die ALSA-Lautstärketasten auch einer anderen Funktion zuordnen, aber es macht keinen Sinn, Tastenkombinationen zu duplizieren.
Ich habe eine Python-Lautstärkeregelung gefunden, die ich in den obigen Skripten aufrufen kann:
https://github.com/fishman/utils/blob/master/pvol.py
pvol.py -s
zeigt den aktuellen Lautstärkepegel auf dem Bildschirm für ALSA und pulseaudio an, aber er ist im Vergleich zu dem von mir verwendeten Gnome-OSD schrecklich winzig und nicht vertikal (Balken oben, altes OSD unten):
Also habe ich es größer gemacht und herumgeworfen:
Aber selbst wenn Sie die Ausrichtung in eine vertikale ändern, ist das blaue Standard-GTK-Design nicht ganz so schick wie VLC (siehe unten).
Vieles, was ich bei der Suche nach OSD-Implementierungen gefunden habe, sind Posts über Benachrichtigungssendebefehle, denen das gesamte Fortschrittsbalkenkonzept fehlt. Ansonsten sind es meist horizontale Balken (und viele Platzhalter in Bash-Skripten). Eigentlich muss ich nur amix & pactl aufrufen, also wäre etwas Einfaches wie der gtk-Fortschrittsbalken in pvol.py großartig - nur nicht so blau und nicht genau in der Mitte des Bildschirms.
VLC hat ein gutes Beispiel dafür, was ich denke, wenn Sie im Vollbildmodus mit dem Mausrad scrollen:
Es ist viel weniger störend als die üblichen Kisten in der Mitte des Bildschirms:
Die gesamte Analogie der horizontalen Schieberegler hat für mich nie viel Sinn gemacht, wenn ich den Ton zwischen dem linken und dem rechten Lautsprecher verschoben habe.
Wie kommt es, dass die Standard-Desktop-Benachrichtigungen aufgerufen werden (insbesondere LXDE)? Ich sehe viele Beiträge über das Konfigurieren von Tastendruckereignissen, aber nicht viel darüber, welche Skripte diese Ereignisse auslösen. Welche anderen Optionen gibt es in der Abteilung für vertikale Phantasie?
Gibt es auch ein Paket, das ich deinstallieren sollte, um zu verhindern, dass Konflikte zwischen den Ereignissen entstehen, die ich durch Skripten und Compiz- oder Openbox-Befehle bearbeite?
Update: Um herauszufinden, welches OSD ich gerade verwende, habe ich die Art und Weise, wie ich mit der Stummschalttaste umgehe, nicht sofort geändert. Wenn Sie xfce4-notifyd beenden und dann die Stummschalttaste drücken, wird ein neuer xfce4-notifyd-Prozess ausgelöst. Ich habe also vermutet, dass das große Lautsprechersymbol von xfce4-volumed stammt, aber ich habe dieses Paket nicht installiert ... Ah ha! Durch das Beenden des Gnome-Settings-Daemons wird das große OSD in der Mitte des Bildschirms angehalten.