home · contact · privacy
Improve status script. master
authorChristian Heller <c.heller@plomlompom.de>
Wed, 19 Mar 2025 23:43:37 +0000 (00:43 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Wed, 19 Mar 2025 23:43:37 +0000 (00:43 +0100)
testing/home/t490s/.nonpath_bins/status.sh

index 9f21785a1e449259b5bc1bb566bc625020f4cd3c..ce1a4330f1b73245a0ffd6596463ac45e5ad314b 100755 (executable)
@@ -23,6 +23,27 @@ print_bar_block() {
     printf '},\n'
 }
 
     printf '},\n'
 }
 
+print_calc() {
+    printf "%d" $(calc "$1")
+}
+
+color_at() {
+    IDX=0
+    while true; do
+        IDX=$(print_calc "${IDX} + 1")
+        STEP=$(echo "$2" | cut -d'_' -f${IDX})
+       if [ -z "${STEP}" ]; then
+            break
+       fi
+       LIMIT=$(echo "${STEP}" | cut -d':' -f1)
+       COLOR=$(echo "${STEP}" | cut -d':' -f2)
+       if [ "${LIMIT}" -ge "${1}" ]; then
+            printf "${COLOR}"
+           break
+        fi
+    done
+}
+
 print_clipboard() {
     print_selection() {
         print_bar_block "$1:[" "${COL_WHITE}" 0
 print_clipboard() {
     print_selection() {
         print_bar_block "$1:[" "${COL_WHITE}" 0
@@ -46,11 +67,18 @@ print_online() {
         if [ -z "${IP}" ]; then
            print_bar_block '-'
         else
         if [ -z "${IP}" ]; then
            print_bar_block '-'
         else
-            print_bar_block "${IP}" "${COL_WHITE}"
+            print_bar_block "${IP}" "${COL_WHITE}" "$2"
         fi
     }
     print_conn enp
         fi
     }
     print_conn enp
-    print_conn wlp
+    print_conn wlp 0
+    STATUS_WIFI=$(nmcli -t -f IN-USE,SSID,SIGNAL dev wifi | grep '^\*:')
+    if [ ! -z "${STATUS_WIFI}" ]; then
+        SIGNAL=$(echo -n "${STATUS_WIFI}" | cut -d':' -f3)
+        COLOR=$(color_at $SIGNAL "45:${COL_RED}_85:${COL_YELLOW}_100:${COL_GREEN}")
+        print_bar_block " ${SIGNAL}" "${COLOR}" 0
+        print_bar_block "% $(echo "${STATUS_WIFI}" | cut -d':' -f2)"
+    fi
 }
 
 print_battery() {
 }
 
 print_battery() {
@@ -60,16 +88,11 @@ print_battery() {
         cat_energy() {
             cat "${BAT_DIR}/energy_$1"
         }
         cat_energy() {
             cat "${BAT_DIR}/energy_$1"
         }
-        printf "%d" $(calc "100 * $(cat_energy $1) // $(cat_energy $2)")
+        print_calc "100 * $(cat_energy $1) // $(cat_energy $2)"
     }
 
     CHARGE=$(calc_percent now full)
     }
 
     CHARGE=$(calc_percent now full)
-    COLOR="${COL_GREEN}"
-    if [ "${CHARGE}" -lt 25 ]; then
-        COLOR="${COL_RED}"
-    elif [ "${CHARGE}" -lt 65 ]; then
-        COLOR="${COL_YELLOW}"
-    fi
+    COLOR=$(color_at $CHARGE "25:${COL_RED}_65:${COL_YELLOW}_100:${COL_GREEN}")
     print_bar_block "${CHARGE}%" "${COLOR}" 0
 
     COLOR="${COL_WHITE}"
     print_bar_block "${CHARGE}%" "${COLOR}" 0
 
     COLOR="${COL_WHITE}"
@@ -92,12 +115,8 @@ print_battery() {
 print_temperature() {
     COLOR="${COL_WHITE}"
     TEMPERATURE=$(cat ${SYSCLASS_DIR}/thermal/thermal_zone0/temp)
 print_temperature() {
     COLOR="${COL_WHITE}"
     TEMPERATURE=$(cat ${SYSCLASS_DIR}/thermal/thermal_zone0/temp)
-    TEMPERATURE_IN_C=$(printf "%d" $(calc "${TEMPERATURE} // 1000"))
-    if [ $TEMPERATURE_IN_C -gt 85 ]; then
-        COLOR="${COL_RED}"
-    elif [ $TEMPERATURE_IN_C -gt 65 ]; then
-        COLOR="${COL_YELLOW}"
-    fi
+    TEMPERATURE_IN_C=$(print_calc "${TEMPERATURE} // 1000")
+    COLOR=$(color_at $TEMPERATURE_IN_C "65:${COL_GREEN}_85:${COL_YELLOW}_999:${COL_RED}")
     print_bar_block "${TEMPERATURE_IN_C}" "${COLOR}" 0
     print_bar_block '°'
 }
     print_bar_block "${TEMPERATURE_IN_C}" "${COLOR}" 0
     print_bar_block '°'
 }
@@ -115,7 +134,7 @@ print_volume() {
     MUTE=M
     if [ "$(pactl get-sink-mute 0)" = "Mute: no" ]; then
         MUTE=
     MUTE=M
     if [ "$(pactl get-sink-mute 0)" = "Mute: no" ]; then
         MUTE=
-       COLOR="${COL_WHITE}"
+       COLOR="${COL_RED}"
     fi
     print_bar_block "v:${MUTE}$(pactl get-sink-volume 0 | head -1 | cut -d' ' -f5)" "${COLOR}"
 }
     fi
     print_bar_block "v:${MUTE}$(pactl get-sink-volume 0 | head -1 | cut -d' ' -f5)" "${COLOR}"
 }
@@ -132,7 +151,7 @@ print_keyboard() {
     print_bar_block "k:${LAYOUT}"
 }
 
     print_bar_block "k:${LAYOUT}"
 }
 
-printf '{"version": 1}\n[' 
+printf '{"version": 1}\n['
 while true; do
     printf '['
     print_clipboard
 while true; do
     printf '['
     print_clipboard