Home
Aug 11, 2010
Switchare output audio attraverso script bash
Se avete più output audio (per esempio casse e cuffie wireless) e vi serve passare in modo molto veloce da uno all'altro ecco cosa fa per voi.....
Categoria: Linux - Software Libero
Postato da: lucadelu
Dopo l'acquisto delle cuffie wireless ero alla ricerca di un metodo veloce per passare da queste alle casse e viceversa; dopo un po' di ricerca ho trovato questa guida, che si rifà a questa in inglese, dove viene presentato un'ottimo script per risolvere il mio problema.
Innanzitutto dobbiamo installare pulseaudio, pulseaudio-utils e libnotify-bin
sudo apt-get install pulseaudio pulseaudio pulseaudio-esound-compat \
pulseaudio-module-gconf pulseaudio-module-hal pulseaudio-module-x11 \
pulseaudio-utils libnotify-bin
Dovete ora configurare pulseaudio, prima aggiungete il vostro utente ai gruppi di pulseaudio
sudo adduser utente pulsesudo adduser utente pulse-access
poi create con il vostro editor preferito (lanciato da root) il file
/etc/asound.conf
ed inserite
pcm.!default {
type pulse
}
ctl.!default {
type pulse
}
pcm.pulse {
type pulse
}
ctl.pulse {
type pulse
}
con l'editor aperto create un nuovo file, che sarà il nostro script per il cambiamento dell'output
/usr/local/bin/audio-device-switch.sh
e inserite questo codice
#!/bin/bash
declare -i sinks_count=`pacmd list-sinks | \
grep -c index:[[:space:]][[:digit:]]`
declare -i active_sink_index=`pacmd list-sinks | \
sed -n -e 's/\*[[:space:]]index:[[:space:]]\([[:digit:]]\)/\1/p'`
declare -i major_sink_index=$sinks_count-1
declare -i next_sink_index=0
if [ $active_sink_index -ne $major_sink_index ] ; then
next_sink_index=active_sink_index+1
fi
#change the default sink
pacmd "set-default-sink ${next_sink_index}"
#move all inputs to the new sink
for app in $(pacmd list-sink-inputs | \
sed -n -e 's/index:[[:space:]]\([[:digit:]]\)/\1/p');
do
pacmd "move-sink-input $app $next_sink_index"
done
#display notification
declare -i ndx=0
pacmd list-sinks | \
sed -n -e 's/device.description[[:space:]]=[[:space:]]"\(.*\)"/\1/p' | \
while read line;
do
if [ $next_sink_index -eq $ndx ] ; then
notify-send -i notification-audio-volume-high \
"Output passato a: " "$line"
exit
fi
ndx+=1
done;
Ora dovete eseguire alcune operazioni (rendere eseguibile lo script, rimozione vecchie configurazioni, installazione/rimozione ultimi pacchetti) per essere sicuri che pulseaudio funzioni
sudo chmod 755 /usr/local/bin/audio-device-switch.sh
mkdir ~/pulse-backup && cp -r ~/.pulse /etc/pulse -t ~/pulse-backup/
sudo rm -r ~/.pulse
sudo apt-get install libasound2-plugins libsdl1.2debian-pulseaudio \
gstreamer0.10-pulseaudio
Ultimo passaggio è aggiungere il nostro script shortcuts da tastiera; su kde4 basta andare su Impostazioni di Sistema -> Azioni di immissione -> Azioni predefinite -> tasto destro -> Nuovo -> Scorciatoia globale -> Comando/Url e poi scegliere la combinazione dei tasti per eseguire il comando nella finestra Attivazione e inserire il comando "audio-device-switch.sh" in Azione.
Ora potete riavviare il vostro computer e provare la combinazione dei tasti della tastiera scelta precedentemente, dovrebbe apparire una notifica col nome del output audio che verrà utilizzato (se per caso non succede nulla, lanciate il comando da console e controllate l'errore)

News from www.lucadelu.org
