icecast improvements
[distro-setup] / myi3status
index d8c5d22e7c020280231c927ab784c1519b38860c..608c5cee55110fb0c611875738c0dbecacdac725 100755 (executable)
@@ -1,6 +1,25 @@
 #!/bin/bash
 #!/bin/bash
-# Copyright (C) 2019 Ian Kelling
-# SPDX-License-Identifier: AGPL-3.0-or-later
+# 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 switch
+# its license to GPL.
+
+# 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.
+
 
 # usage:
 #
 
 # usage:
 #
@@ -52,7 +71,7 @@
 #
 if [ -z "$BASH_VERSION" ]; then echo "error: shell is not bash" >&2; exit 1; fi
 
 #
 if [ -z "$BASH_VERSION" ]; then echo "error: shell is not bash" >&2; exit 1; fi
 
-source /a/bin/errhandle/err
+source /a/bin/bash-bear-trap/bash-bear
 
 shopt -s nullglob
 shopt -s dotglob
 
 shopt -s nullglob
 shopt -s dotglob
@@ -155,6 +174,43 @@ main() {
     ps_char="=======FOCUS====== $ps_char"
   fi
 
     ps_char="=======FOCUS====== $ps_char"
   fi
 
+  if [[ -e /tmp/iank-i3-no-auto ]]; then
+    ps_char="$ps_char I"
+  fi
+
+  # not using currently
+  # if [[ -e /tmp/no-obs-auto-scene-switch ]]; then
+  #   ps_char="$ps_char O"
+  # fi
+
+  if pgrep -fc '^ffmpeg.*icecast://source.*/fsf' &>/dev/null; then
+    if [[ -e /tmp/iank-ffmpeg-interlude-toggle ]]; then
+      ps_char="= BRB = $ps_char"
+    else
+      ps_char="=|=|= STREAMING =|=|= $ps_char"
+    fi
+
+    muted=$(cat $HOME/.iank-stream-muted) ||:
+    case $muted in
+      0) : ;;
+      1)
+        if find $HOME/.iank-stream-muted -mmin +2 | grep . &>/dev/null && \
+            ! pgrep -fc '^ffmpeg.*icecast://source.*/fsf-test'; then
+          toggle-mute mute notify
+        else
+          ps_char="# UNMUTED # $ps_char"
+        fi
+        ;;
+      *)
+        ps_char="!!!!! FAILED GETTING MUTE STATUS !!!!! $ps_char"
+        ;;
+    esac
+  fi
+
+  # fyi: to check system mute:
+  # if pactl get-source-mute @DEFAULT_SOURCE@ 2>/dev/null | awk '{print $2}' | grep no &>/dev/null; then
+
+
 
   printf '{ "name":"status", "color":"#ED297D", "full_text": "%s' "$ps_char"
   printf '"},'
 
   printf '{ "name":"status", "color":"#ED297D", "full_text": "%s' "$ps_char"
   printf '"},'
@@ -294,9 +350,13 @@ if (( $# )); then
 else
   printf '{ "version": 1, "click_events": true }\n['
   while true; do
 else
   printf '{ "version": 1, "click_events": true }\n['
   while true; do
-    main
-    line=
-    read -r -t 3 line ||:
+    if [[ -e /tmp/noi3bar ]]; then
+      sleep 10
+    else
+      main
+      line=
+      read -r -t 3 line ||:
+    fi
   done
 fi
 
   done
 fi