First jist of the programm
TODO: Integrate the "configuration file parsing"
This commit is contained in:
parent
4af71cf206
commit
e297cf8733
114
volumectl
Executable file
114
volumectl
Executable file
@ -0,0 +1,114 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
VOLUME_CONTROLLER="pamixer"
|
||||||
|
INCREASE_FLAG="--increase"
|
||||||
|
DECREASE_FLAG="--decrease"
|
||||||
|
SET_VOLUME_FLAG="--set-volume"
|
||||||
|
SET_MUTE_FLAG="--mute"
|
||||||
|
TOGGLE_MUTE_FLAG="--toggle-mute"
|
||||||
|
ADDITIONAL_FLAGS=("--allow-boost")
|
||||||
|
|
||||||
|
NOTIFICATION=1
|
||||||
|
|
||||||
|
volume_up_by () {
|
||||||
|
$VOLUME_CONTROLLER ${ADDITIONAL_FLAGS[@]} $INCREASE_FLAG $1
|
||||||
|
}
|
||||||
|
|
||||||
|
volume_down_by () {
|
||||||
|
$VOLUME_CONTROLLER ${ADDITIONAL_FLAGS[@]} $DECREASE_FLAG $1
|
||||||
|
}
|
||||||
|
|
||||||
|
volume_set () {
|
||||||
|
$VOLUME_CONTROLLER ${ADDITIONAL_FLAGS[@]} $SET_VOLUME_FLAG $1
|
||||||
|
}
|
||||||
|
|
||||||
|
volume_big_up () {
|
||||||
|
volume_up_by 10
|
||||||
|
}
|
||||||
|
|
||||||
|
volume_big_down () {
|
||||||
|
volume_down_by 10
|
||||||
|
}
|
||||||
|
|
||||||
|
volume_up () {
|
||||||
|
volume_down_by 5
|
||||||
|
}
|
||||||
|
|
||||||
|
volume_down () {
|
||||||
|
volume_down_by 5
|
||||||
|
}
|
||||||
|
|
||||||
|
toggle_mute() {
|
||||||
|
$VOLUME_CONTROLLER $TOGGLE_MUTE_FLAG
|
||||||
|
}
|
||||||
|
|
||||||
|
full_mute () {
|
||||||
|
$VOLUME_CONTROLLER $SET_MUTE_FLAG
|
||||||
|
}
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
cat << EOF
|
||||||
|
volumectl - A configurable bash script that makes your life easier in controlling you volume and notifying it.
|
||||||
|
|
||||||
|
Usage: volumectl [-n|-N] -i [arg] increase the volume by the "normal" amount or by the [arg] amount
|
||||||
|
volumectl [-n|-N] -d [arg] decrease the volume by the "normal" amount or by the [arg] amount
|
||||||
|
volumectl [-n|-N] -s set volume to certain amount
|
||||||
|
volumectl [-n|-N] -m set mute
|
||||||
|
volumectl [-n|-N] -t toggle mute
|
||||||
|
volumectl -h to show this help message
|
||||||
|
|
||||||
|
Argument:
|
||||||
|
-n, --notification forces the notification to appear (overrides the configuration setting)
|
||||||
|
-N, --no-notification forces the notification NOT to appear (overrides the configuration setting)
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then #if '__name__' == '__main__'
|
||||||
|
# Parsing through the args {{{
|
||||||
|
|
||||||
|
# check if the notification is being forced or not
|
||||||
|
case $1 in
|
||||||
|
-n|--notification)
|
||||||
|
NOTIFICATION=1
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-N|--no-notification)
|
||||||
|
NOTIFICATION=1;
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
-i|--increase)
|
||||||
|
[[ -z "$2" ]] && volume_up || volume_up_by $2
|
||||||
|
;;
|
||||||
|
-I|--big-increase)
|
||||||
|
volume_big_up
|
||||||
|
;;
|
||||||
|
-d|--decrease)
|
||||||
|
[[ -z "$2" ]] && volume_down || volume_down_by $2
|
||||||
|
;;
|
||||||
|
-D|--big-decrease)
|
||||||
|
volume_big_down
|
||||||
|
;;
|
||||||
|
-s|--set-volume)
|
||||||
|
volume_set $2
|
||||||
|
;;
|
||||||
|
-m|--set-mute)
|
||||||
|
full_mute
|
||||||
|
;;
|
||||||
|
-t|--toggle-mute)
|
||||||
|
toggle_mute
|
||||||
|
;;
|
||||||
|
-h|--help)
|
||||||
|
usage
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unrecognized '$1' flag or argument"
|
||||||
|
echo "Try 'volumectl -h' for more information"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
# End of parsing through the args }}}
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user