X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=system-status;fp=system-status;h=9d9049ef93a30bd59a9d64bae545dcbb7e49b9f2;hb=65d1dda5c1e79aa9c85a2d16bdd1a12413f163af;hp=7d5567d8d16bda261d5672140e7d3e87980dba03;hpb=279890b457806c91686cf04e3426b8c951c244eb;p=distro-setup diff --git a/system-status b/system-status index 7d5567d..9d9049e 100755 --- a/system-status +++ b/system-status @@ -68,7 +68,7 @@ write-status() { dynamicipupdate ) bads=() - if systemctl show -p SubState --value ${services[@]} | egrep -v '^(running|)$' &>/dev/null; then + if systemctl show -p SubState --value ${services[@]} | grep -E -v '^(running|)$' &>/dev/null; then for s in ${services[@]}; do if [[ $(systemctl show -p SubState --value $s 2>&1) != running ]]; then bads+=($s) @@ -88,7 +88,7 @@ write-status() { prometheus ) bads=() - if systemctl show -p SubState --value ${services[@]} | egrep -v '^(running|)$' &>/dev/null; then + if systemctl show -p SubState --value ${services[@]} | grep -E -v '^(running|)$' &>/dev/null; then for s in ${services[@]}; do if [[ $(systemctl show -p SubState --value $s 2>&1) != running ]]; then bads+=($s) @@ -228,7 +228,7 @@ write-status() { # this is for tracking dns over tls issue, which # fixvpndns() in brc2 fixes. stat=$(resolvectl dnsovertls tunfsf 2>/dev/null ||: ) - read _ _ _ istls <<<"$stat" + read -r _ _ _ istls <<<"$stat" case $istls in no) : ;; *) @@ -382,10 +382,40 @@ write-status() { fi fi } + +# This prevents me having to mute notifications when I'm going to bed. +mute() { + local locked + export DISPLAY=:0 + locked=false + if lock_info=$(xscreensaver-command -timer); then + if [[ $lock_info != *non-blanked* ]]; then + locked=true + fi + else + locked=true + fi + midnight=$(date -d 00:00 +%s) + mdiff=$(( EPOCHSECONDS - midnight )) + if $locked && (( mdiff < 6 || mdiff > 21 )); then + case $(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}') in + no) + pactl set-sink-mute @DEFAULT_SINK@ true + ;; + esac + fi + if ! $locked && (( mdiff > 6 || mdiff < 12 )) && [[ ! -e /tmp/ianknap ]]; then + case $(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}') in + yes) + pactl set-sink-mute @DEFAULT_SINK@ false + ;; + esac + fi +} + # use this if we want to do something just once per minute first_chars=() - write-status if [[ $1 ]]; then cat $status_file @@ -408,6 +438,7 @@ main-loop() { sleep $wait write-status + mute done }