[pulseaudio-discuss] Using "expect" to feed pacmd

Whit Blauvelt whit.pulse at transpect.com
Thu Sep 9 20:40:48 PDT 2010


> #! /usr/bin/expect
> 
> spawn pacmd
> expect ">>>"
> send "set-default-source alsa_input.usb-Generic_FREETALK_Everyman_0000000001-00-Everyman.analog-stereo\r"
> expect ">>>"
> send "exit=\r"

Oops, that last line is triple wrong. Actually, the script as given works,
but it shouldn't. There's a typo of an added "=", and even worse there's the
use of "exit" which would be appropriate in many shells, but in pacmd tells
the utility to kill the daemon - not what's wanted, but it fortunately fails
to do that even with the "=" removed.

Happily, leaving that last line off entirely works. The script does need the
second expect line for ">>>" that's before it, for some reason. Then expect
gets out of the shell without an explicit exit or ctrl-C or whatever,
happily.

I'm sure the script could be expanded to also send the output somewhere
specific, or whatever. You could set up a whole row of buttons in your panel
to send system-specific commands, or groups of them, to pacmd via expect
scripts.

Makes me feel a little better about the prospects of pulse, even if this is
way too hackish in its little way.

Whit



More information about the pulseaudio-discuss mailing list