X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=myi3status;h=bd0c634d1c1228b97ad1605fc62610fb6c97712f;hb=HEAD;hp=d8c5d22e7c020280231c927ab784c1519b38860c;hpb=7f6a974222bd0f3936b61a8430d3e28a13307632;p=distro-setup diff --git a/myi3status b/myi3status index d8c5d22..608c5ce 100755 --- a/myi3status +++ b/myi3status @@ -1,6 +1,25 @@ #!/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: # @@ -52,7 +71,7 @@ # 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 @@ -155,6 +174,43 @@ main() { 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 '"},' @@ -294,9 +350,13 @@ if (( $# )); then 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