option for disabling status for less distraction
[distro-setup] / myi3status
index 9aeccca8a4b0b8676d067f915ef4e4db276b6dbd..7183a8ff7eec6360277ed807bfad2befc7925ca4 100755 (executable)
 #
 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
 
+tmp_focus1=$(mktemp)
+tmp_focus2=$(mktemp)
+
 mins=0
 half_hours=0
-fast_blocks=30
 start=$EPOCHSECONDS
 domins=false
 
@@ -137,6 +139,26 @@ main() {
 
   printf '['
 
+  if [[ -e /dev/shm/iank-status && ! -e /tmp/quiet-status ]]; then
+    ps_char=
+    eval "$(< /dev/shm/iank-status)"
+  fi
+
+  touch --date="10 minutes ago" $tmp_focus1
+  touch --date="30 minutes ago" $tmp_focus2
+  f=/tmp/focus-last-input
+
+  # We output a reminder to do input to the focus app if we haven't done
+  # it less 10 minutes ago (but dont bother if its been more than 30
+  # minutes, maybe we aren't running it anymore.)
+  if [[ -e $f && $tmp_focus2 -ot $f && $tmp_focus1 -nt $f ]]; then
+    ps_char="=======FOCUS====== $ps_char"
+  fi
+
+
+  printf '{ "name":"status", "color":"#ED297D", "full_text": "%s' "$ps_char"
+  printf '"},'
+
 
   if [[ $start2 ]]; then
     time2=$((EPOCHSECONDS - start2))
@@ -238,7 +260,7 @@ main() {
 
   # there are 9 spark levels, 1/9 = .111.... In order to keep it in bash math, we upscale
   # the number and divide by 111, 3 digits is good enough accuracy.
-  spark_index="$(( (1000000 -($EPOCHSECONDS - $day_start)*1000000 / (16*60*60) ) % 1000 / 111 ))"
+  spark_index="$(( (1000000 -(EPOCHSECONDS - day_start)*1000000 / (16*60*60) ) % 1000 / 111 ))"
   spark=" ▁▂▃▄▅▆▇█"
   # note: 960 minutes, so 10 minutes is about 1%
   day_thousandth=$(( 1000 - (EPOCHSECONDS - day_start)*1000 / (16*60*60) ))
@@ -272,8 +294,14 @@ 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
+
+rm -f $tmp_focus1 $tmp_focus2