#!/bin/bash # I, Ian Kelling, follow the GNU license recommendations at # https://www.gnu.org/licenses/license-recommendations.en.html. They # recommend that small programs, < 300 lines, be licensed under the # Apache License 2.0. This file contains or is part of one or more small # programs. If a small program grows beyond 300 lines, I plan to change # to a recommended GPL license. # Copyright 2024 Ian Kelling # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # http://www.apache.org/licenses/LICENSE-2.0 # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. if ! test "$BASH_VERSION"; then echo "error: shell is not bash" >&2; exit 1; fi shopt -s inherit_errexit 2>/dev/null ||: # ignore fail in bash < 4.4 set -eE -o pipefail trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" exit status: $?, PIPESTATUS: ${PIPESTATUS[*]}" >&2' ERR mute=true volume_level=0 # mute / unmute instead of toggle. if [[ $1 ]]; then case $1 in mute) mute=true ;; unmute) mute=false ;; esac else muted=$(pactl get-source-mute @DEFAULT_SOURCE@ | awk '{print $2}' ||:) case $muted in no) : ;; yes) mute=false; volume_level=1 ;; *) i3-nagbar -m "FAILED TO GET PULSE MUTE STATE" -t error -f "pango:monospace 30" ;; esac fi # we double mute here because it could be useful, and I figured out how # and feel like using what I know. pactl set-source-mute @DEFAULT_SOURCE@ $mute # note: condition duplicated in stream-clip, myi3statsus if pgrep -fc '^ffmpeg.*icecast://source.*/fsf' >/dev/null; then out=$(echo Parsed_volume_1 volume $volume_level | zmqsend ||:) if [[ $out != "0 Success" ]]; then i3-nagbar -m "FAILED to set ffmpeg volume to $volume_level" -t error -f "pango:monospace 30" fi fi