My laptop has a lot of extra keys, a few of them for controlling
sound. At first I mapped those to change the volume silently with
amixer. While I was at
a hackmeeting this winter I
noticed a few laptops that had internal OSD showing a
progress bar on volume changes. I liked that, and
recently Gigamo showed me
his rvol
utility for changing the volume that displays a GTK progress bar. It's
written in
Ruby and I didn't have ruby-gtk2 bindings to try it
(nor wanted to install them).
I considered it a good exercise to rewrite it in Python with
pygtk, because so far I used only WxGTK
and PythonCard. Good
thing that I did
as Pylendar
was next and it was much easier to
write. Anyway pvol.py
is a command line utility for changing the volume, showing an optional
GTK progress bar. While rvol uses an external utility for
actual volume changes I decided to use ossaudiodev, so
pvol is standalone. One especially tricky task with it was
muting audio channels. I worked
with pyalsaaudio
before and I like it more but it's not part of the standard Python
distribution. Finally I re-mapped my keys to use pvol and I'm very
happy with it, it's simple but it makes a difference. Let's see what
it actually does:
$ pvol -h
Usage: pvol [-s] [-m] [-c PERCENT] [-p] [-q]
Options:
-h, --help show this help message and exit
-s, --status display current volume
-m, --mute mute the main audio channel
-c PERCENT, --change=PERCENT
increase or decrease volume by given percentage
-p, --pcm change PCM channel (default is MASTER)
-q, --quiet adjust volume without the progressbar