#!/usr/bin/perl-w use Tk; use strict; my $mw = MainWindow->new; $mw->geometry("250x100"); $mw->title("Volume"); $mw->Label(-text=>'Volume Control UI')->pack(-side=> 'top'); $mw->Button(-text=>'SET', -command=>\&SetVol)->pack(-side=> 'left', -anchor=> 'sw'); $mw->Button(-text=>'MUTE', -command=>\&VolumeMute)->pack(-side=> 'left', -anchor=> 'sw'); $mw->Button(-text=>'UP', -command=>\&SetVolPlus10)->pack(-side=>'left', -anchor=>'sw'); my $Entry = $mw->Entry()->pack(-side=> 'left', -anchor=> 'sw', -pady=> 3); my $VolCur = q(/usr/bin/amixer get Master | grep -o "[0-9].%" | awk '!x[$0]++'); sub SetVol { my $Etext = $Entry->get(); system("amixer set 'Master' $Etext"); } sub VolumeMute { system("amixer set 'Master' 0%"); } my $UC = $VolCur; sub SetVolPlus10 { system($VolCur); $UC+1; system("amixer set 'Master' $UC"); } MainLoop;