Alsa zamiast PulseAudio i klawiatura?
No, PulseAudio (syf instalowany w najnowszym ubuntu, do dźwięku) ssie. Naprawdę, problemów z nim od cholery – wszyscy doradzają przesiadkę na Alsę – no to ja opiszę krok po kroku jak to zrobić tak, żeby dodatkowo działało jeszcze podgłaszanie/ściszanie z klawiatury ;)
1. Wywalamy Pulse, instalujemy Alse
# aptitude remove pulseaudio# aptitude install esound
2. Robimy kopie zapasowe, tak na wszelki wypadek
# cp /etc/X11/Xsession.d/70pulseaudio /etc/X11/Xsession.d/70pulseaudio.back && rm /etc/X11/Xsession.d/70pulseaudio
3. Nie ma apletu do dźwięku! Co teraz?
Instalujemy te dwie paczki:
http://resonance.org/~josh/gnome-applets_2.28.0-0unofficial1_i386.deb
http://resonance.org/~josh/gnome-applets-data_2.28.0-0unofficial1_all.deb
I dodajemy regulator głośności jako applet do panelu.
4. Klawiatura
No, moja ulubiona część. Zakładam, że amixer jest już w systemie.
Otwieramy: System → Preferencje → Skróty Klawiszowe
Klikamy na dodaj – podajemy następujące parametry.
| nazwa | polecenie |
| ALSA VOLUME UP | amixer set PCM 5%+ |
| ALSA VOLUME DOWN | amixer set PCM 5%- |
| ALSA MUTE | Przejdź do pkt. 5 |
5. Wyciszanie
Niestety, nie znalazłem w amixerze prostego sposobu na wyciszenie dźwięku. Tzn tak: można zrobić ‘amixer set PCM mute’, ale wtedy żeby go włączyć spowrotem trzeba nieco innego polecenia użyć (amixer set PCM unmute). To trochę niewygodne, bo nie da się tego w prosty sposób przypisać pod klawisz.
Napisałem własny skrypt, który należy wrzucić do /usr/bin, nadać mu uprawnienia 755, stworzyć plik /var/alsastate i jego podać, jako polecenie do klawisza wyciszania. Skrypt korzysta z języka TCL. Sam skrypt:
#!/usr/bin/env tclsh
set statefile "/var/alsastate"
proc checkstate { } {
global statefile
set fd [open $statefile r]
set state [read $fd]
close $fd
return $state
}
proc setstate { to } {
global statefile
set fd [open $statefile w]
puts $fd $to
close $fd
}
if {[checkstate] == 1} {
puts stdout "muted!"
exec amixer set PCM mute
setstate 0
} else {
puts stdout "not muted!"
exec amixer set PCM unmute
setstate 1
}
I rzeczy które potrzebujemy do jego odpalenia:
# aptitude install tclsh# touch /var/alsastate
No – i to na tyle. Przypominam, użytkownik musi mieć uprawnienia do zapisu /var/alsastate, oraz że mój skrypt musi mieć uprawnienia +x.
