-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdo_mute_gui.sh
More file actions
executable file
·135 lines (109 loc) · 2.61 KB
/
do_mute_gui.sh
File metadata and controls
executable file
·135 lines (109 loc) · 2.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#!/usr/bin/env sh
function usage()
{
echo "Usage: $PROGRAM_NAME [NUM] [--delay NUM] [--help]"
echo "optional arguments:"
echo " -d, --persist Run again, until cancel is hit"
echo " -h, --help Show this help message and exit"
}
machine=Linux
function read_machine_type()
{
unameOut="$(uname -s)"
case "${unameOut}" in
Linux*) machine=Linux;;
Darwin*) machine=Mac;;
CYGWIN*) machine=Cygwin;;
MINGW*) machine=MinGw;;
*) machine="UNKNOWN:${unameOut}"
esac
echo ${machine}
}
function os_is()
{
local n=0
#if [[ "$1" = "-n" ]]; then n=1;shift; fi
#echo $OS|grep $1 -i >/dev/null
uname -s |grep -i "$1" >/dev/null
return $(( $n ^ $? ))
}
function mute()
{
os_is Darwin &&
{
current_volume=$(osascript -e 'output volume of (get volume settings)')
osascript -e 'set volume output volume 0' # MacOS
}
os_is Linux &&
{
amixer -q -D pulse sset Master mute
}
}
function unmute()
{
os_is Darwin &&
{
osascript -e "set volume output volume $current_volume" # MacOS
}
os_is Linux &&
{
amixer -q -D pulse sset Master unmute
}
}
modify_win_by_pid() {
pid=$1
sleep 0.2
win_id=`wmctrl -l -p | grep ${pid} | awk '{print $1}'`
wmctrl -i - ${win_id} -b add,above
}
# Init script vars
PROGRAM_NAME=$(basename $0)
DELAY_PERIOD=60
RUN_UNTIL_CANCEL=0
POSITIONAL=()
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-p|--persist)
RUN_UNTIL_CANCEL=1
shift # past argument
#shift # past value
;;
-h|--help)
usage; exit;
;;
*)
POSITIONAL+=("$1")
shift # past argument
;;
esac
done
set -- "${POSITIONAL[@]}" # restore positional params
while true
do
DELAY_PERIOD=$(zenity --entry --text="Mute Audio Duration" --entry-text=$DELAY_PERIOD)
# Check that is has a value
if [[ -z $DELAY_PERIOD ]]; then break; fi
# Check that the value is a number.
REGEX="^[0-9]+$"
if ! [[ $DELAY_PERIOD =~ $REGEX ]];
then
break;
fi
# Issue our mute command
mute
wait_period=0
while true
do
wait_period=$(($wait_period+1))
if [ $wait_period -gt $DELAY_PERIOD ]; then
break
else
sleep 1
fi
done
# Issue our unmute command
unmute
if [ $RUN_UNTIL_CANCEL -eq 0 ]; then break; fi
done