From a8287257bbfc129930bb875896f0f3032235f37a Mon Sep 17 00:00:00 2001 From: Karma Riuk Date: Thu, 4 Mar 2021 01:36:53 +0100 Subject: [PATCH] Added the notification timeout optional flag --- volumectl | 40 ++++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/volumectl b/volumectl index 6b845ff..f95ad1c 100755 --- a/volumectl +++ b/volumectl @@ -14,7 +14,8 @@ ADDITIONAL_FLAGS=("--allow-boost") ## Default values NOTIFICATION_ENABLED=1 -NOTIFICATION_TIMEOUT=5 +NOTIFICATION_TIMEOUT=5000 + CONFIG_PATH="$XDG_CONFIG_HOME/`basename $0`/config.ini" VERBOSE=0 @@ -26,7 +27,7 @@ VOLUME_MIN=5 ## Args -OPTIONAL_FLAGS=("-v" "--verbose" "-c" "--config" "-n" "--notifcation" "-N" "--no-notification") +OPTIONAL_FLAGS=("-t" "--notification-timeout" "-v" "--verbose" "-c" "--config" "-n" "--notifcation" "-N" "--no-notification" "-h" "--help") verbose () { [[ $VERBOSE -eq 1 ]] && return 0 || return 1 @@ -46,7 +47,7 @@ notify () { icon="audio-volume-high" fi - local cmd="dunstify -h int:value:$volume -h string:x-dunst-stack-tag:volume -i \"$icon\" \"Volume ($volume%)\"" + local cmd="dunstify -h int:value:$volume -t $NOTIFICATION_TIMEOUT -h string:x-dunst-stack-tag:volume -i \"$icon\" \"Volume ($volume%)\"" [[ $NOTIFICATION_ENABLED -eq 1 ]] && sh -c "$cmd" verbose && ( [[ $NOTIFICATION_ENABLED -eq 1 ]] && echo "Notified with \`$cmd\`" || echo "Didn't notify" ) } @@ -66,7 +67,7 @@ volume_down_by () { verbose && echo "Decreasing volume by $1, with \`$cmd\`" verbose && echo "Volume before command: $(get_volume)" - $cmd + sh -c "$cmd" verbose && echo "Volume after command: $(get_volume)" notify } @@ -76,7 +77,7 @@ volume_set () { verbose && echo "Setting the volume to $1, with \`$cmd\`" verbose && echo "Volume before command: $(get_volume)" - $cmd + sh -c "$cmd" verbose && echo "Volume after command: $(get_volume)" notify } @@ -96,7 +97,7 @@ volume_big_down () { volume_up () { local cmd="volume_up_by $NORMAL_DELTA" verbose && echo "Increasing the volume, with \`$cmd\`" - $cmd + sh -c "$cmd" } volume_down () { @@ -110,7 +111,7 @@ toggle_mute() { verbose && echo "Toggling the mute, with \`$cmd\`" verbose && echo "Mute state before command: $(get_mute)" - $cmd + sh -c "$cmd" verbose && echo "Mute state after command: $(get_mute)" notify } @@ -121,7 +122,7 @@ mute () { verbose && echo "Setting the mute on, with \`$cmd\`" verbose && echo "Mute state before command: $(get_mute)" - $cmd + sh -c "$cmd" verbose && echo "Mute state after command: $(get_mute)" notify } @@ -131,17 +132,17 @@ unmute () { verbose && echo "Setting the mute off, with \`$cmd\`" verbose && echo "Mute state before command: $(get_mute)" - $cmd + sh -c "$cmd" verbose && echo "Mute state after command: $(get_mute)" notify } get_volume () { - $VOLUME_CONTROLLER ${ADDITIONAL_FLAGS[@]} $GET_VOLUME_FLAG + sh -c "$VOLUME_CONTROLLER ${ADDITIONAL_FLAGS[@]} $GET_VOLUME_FLAG" } get_mute () { - $VOLUME_CONTROLLER ${ADDITIONAL_FLAGS[@]} $GET_MUTE_FLAG + sh -c "$VOLUME_CONTROLLER ${ADDITIONAL_FLAGS[@]} $GET_MUTE_FLAG" } usage() { @@ -164,12 +165,14 @@ Options: -t, --toggle toggle mute -g, --get-volume get volume -G, --get-mute get mute - -h, -?, --help show this message Optional arguments: + -t, --notification-timeout arg forces the notification timeout, in milliseconds (overrides the configuation setting, + the default value is $NOTIFICATION_TIMEOUT) -n, --notification forces the notification to appear (overrides the configuration setting) -N, --no-notification forces the notification NOT to appear (overrides the configuration setting) -v, --verbose print each step the script passes through + -h, -?, --help show this message EOF } @@ -185,6 +188,11 @@ if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then #if '__name__' == '__main__' verbose && echo "Setting \$VERBOSE to true (\$VERBOSE=$VERBOSE)" shift ;; + -t|--notification-timeout) + NOTIFICATION_TIMEOUT="$2"; + verbose && echo "Setting \$NOTIFICATION_TIMEOUT to $2 (\$NOTIFICATION_TIMEOUT=$NOTIFICATION_TIMEOUT)" + shift 2 + ;; -c|--config) CONFIG_PATH="$2"; verbose && echo "Setting \$CONFIG_PATH to $2 (\$CONFIG_PATH=$CONFIG_PATH)" @@ -200,6 +208,11 @@ if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then #if '__name__' == '__main__' verbose && echo "Setting \$NOTIFICATION_ENABLED to false (\$NOTIFICATION_ENABLED=$NOTIFICATION_ENABLED)" shift ;; + -h|-\?|--help) + verbose && echo "Detected -h, -? or --help" + usage + shift + ;; esac done @@ -253,8 +266,7 @@ if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then #if '__name__' == '__main__' verbose && echo "Detected -G or --get-mute" get_mute ;; - -h|-\?|--help) - verbose && echo "Detected -h, -? or --help" + "") usage ;; *)