Czy jest jakiś wymyślny sposób, aby OSD powiadomienia głośności działało zarówno z pulseaudio, jak i ALSA? W tej chwili standardowe komputery stacjonarne działają tylko dla mnie z pulseaudio. Co powiesz na pionowe menu OSD, którego mogę użyć jako kropli zastępowania lub wywołania z wiersza poleceń, aby graficznie zgłaszać zmiany w dowolnych procentach, jako pasek, który przesuwa się w górę i w dół?
Powodem, dla którego muszę pracować zarówno z ALSA, jak i pulseaudio, jest to, że używam aplikacji WINE, która nie działa dobrze z pulsem, więc zabijam puls przed uruchomieniem aplikacji Windows, aby korzystać z ALSA bez dodatkowej warstwy abstrakcji. Kiedy zdałem sobie sprawę, że klawisze głośności na mojej klawiaturze nie działają bez pulsu, napisałem kilka skryptów bash, które wywołuję za pomocą Compiz lub Openbox (skonfigurowanych odpowiednio za pomocą CCSM i lxde-rc.xml), aby przechwycić sygnał wyjścia z pulseaudio --check
i następnie odpowiednio dostosuj głośność:
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
Skrypty działają świetnie i mapowanie przycisków jest w porządku, ale nie mam już dobrego sposobu na zobaczenie wizualnej informacji zwrotnej - nawet w przypadku pulseaudio, ponieważ łapię zdarzenia przycisków (XF86AudioLowerVolume itp.). Oczywiście mogę po prostu zmapować klawisze głośności ALSA na coś innego, ale powielanie klawiszy skrótów nie ma sensu.
Znalazłem regulator głośności Pythona, który mogę wywołać w powyższych skryptach:
https://github.com/fishman/utils/blob/master/pvol.py
pvol.py -s
pokazuje aktualny poziom głośności na ekranie zarówno dla ALSA, jak i pulseaudio, ale jest okropnie mały w porównaniu do OSD gnome, którego używałem, i nie jest pionowy (pasek u góry, stary OSD u dołu):
Więc powiększyłem go i sflopowałem:
Ale nawet po zmianie orientacji na pionową niebieski domyślny motyw GTK nie jest tak gładki jak VLC (patrz poniżej).
Wiele z tego, co znalazłem w poszukiwaniu implementacji OSD, to posty dotyczące poleceń powiadomień i wysyłania, w których brakuje całej koncepcji paska postępu. W przeciwnym razie są to głównie poziome paski (i wiele liczących symboli zastępczych w skryptach bash). Naprawdę wszystko, co muszę zrobić, to zadzwonić do amix i pactl, więc coś prostego, jak pasek postępu gtk w pvol.py, byłoby świetne - po prostu nie tak niebieskie i nie na środku ekranu.
VLC ma dobry przykład tego, co mam na myśli, gdy przewijasz kółko myszy w trybie pełnoekranowym:
Jest o wiele mniej przeszkadzający niż zwykłe pudełka, które znajdują się na środku ekranu:
Cała analogia suwaka poziomego nigdy nie miała dla mnie większego sensu poza przesuwaniem dźwięku między lewym i prawym głośnikiem.
W każdym razie, w jaki sposób wywoływane są domyślne powiadomienia na pulpicie (zwłaszcza LXDE)? Widzę wiele postów na temat konfigurowania kluczowych zdarzeń prasowych, ale niewiele na temat skryptów, które te zdarzenia uruchamiają. Jakie inne opcje są dostępne w dziale fantazyjnym?
Czy jest też jakiś pakiet, który powinienem odinstalować, aby zapobiec powstawaniu konfliktów między zdarzeniami, które obsługuję za pomocą skryptów i poleceń compiz lub openbox?
Aktualizacja: Aby dowiedzieć się, z którego obecnie korzystam OSD, nie zmieniłem od razu sposobu obsługi przycisku wyciszenia. Zabicie xfce4-notifyd, a następnie naciśnięcie przycisku wyciszenia powoduje pojawienie się nowego procesu xfce4-notifyd, więc zgadywałem, że ikona dużego głośnika pochodzi z czegoś takiego jak xfce4-volumed, ale tak naprawdę nie mam zainstalowanego tego pakietu ... Ach, ha! Zabicie gnome-settings-demona zatrzymuje duży OSD na środku ekranu.