Show mpd state
[khatus.git] / bin / khatus_show
index 19004be..fc4415a 100755 (executable)
@@ -22,10 +22,10 @@ memory=$(
             total=$2;
             used=$3;
             cache=$6;
-            file = "/home/siraaj/var/run/status/memory_used_percentage";
+            prev_file = "/home/siraaj/var/run/status/memory_used_percentage";
             curr = round(used / total * 100);
-            getline prev < file;
-            print curr > file;
+            getline prev < prev_file;
+            print curr > prev_file;
             if (curr > prev) {
                 direction = ">";
             } else if (curr < prev) {
@@ -44,22 +44,58 @@ disk=$(
         function round(n) {return int(n + 0.5)}
 
         $1 == "/dev/mapper/kubuntu--vg-root" {
-            total = $2;
-            used  = $3;
-            file = "/home/siraaj/var/run/status/disk_space_used_percentage";
-            curr = round(used / total * 100);
-            getline prev < file;
-            print curr > file;
-            if (curr > prev) {
+            curr_blocks = $3;
+            curr_perc = $5; sub("%$", "", curr_perc);
+            prev_file_prefix = "/home/siraaj/var/run/status/disk_space_used";
+
+            prev_perc_file   = prev_file_prefix "_percentage";
+            prev_blocks_file = prev_file_prefix "_blocks";
+
+            getline prev_blocks < prev_blocks_file;
+            getline prev_perc   < prev_perc_file;
+
+            print curr_blocks > prev_blocks_file;
+            print curr_perc > prev_perc_file;
+            if (curr_perc > prev_perc) {
                 direction = ">";
-            } else if (curr < prev) {
+            } else if (curr_perc < prev_perc) {
                 direction = "<";
             } else {
                 direction = "=";
             }
-            printf("%s%d%%", direction, curr);
+            diff_blocks = curr_blocks - prev_blocks;
+            printf("%s[%d%% %d]", direction, curr_perc, diff_blocks);
         }')
 
+io_net=$(
+    awk '
+        BEGIN {
+            bytes_per_unit = 1024 * 1024
+        }
+
+        NR > 2 {
+            device     = $1; sub(":$", "", device);
+            curr_read  = $2;
+            curr_write = $10;
+
+            prev_file_prefix  = "/home/siraaj/var/run/status/io_net_" device;
+            prev_read_file  = prev_file_prefix "_read";
+            prev_write_file = prev_file_prefix "_write";
+
+            getline prev_read < prev_read_file;
+            getline prev_write < prev_write_file;
+
+            diff_read  = (curr_read  - prev_read ) / bytes_per_unit;
+            diff_write = (curr_write - prev_write) / bytes_per_unit;
+
+            print curr_read  > prev_read_file;
+            print curr_write > prev_write_file;
+
+            printf("%s %0.3f▲ %0.3f▼\n", device, diff_write, diff_read);
+        }
+    ' /proc/net/dev
+)
+
 energy=$(
     upower -e \
     | grep battery \
@@ -225,7 +261,7 @@ else
     rm -f "$STATUS_FILE__ENERGY_NOTIFIED_BELLOW_HALF"
 fi
 
-weather="$(cat ~/var/run/metar-KJFK-decoded-temp-fahrenheit)°F"
+weather=$(awk 'NR == 1 {printf("%d°F", $1)}' ~/var/run/metar-KJFK-decoded-temp-fahrenheit)
 
 signal_last_msg_age=$(
     ls -lt --time-style=+%s $HOME/var/lib/signal/latest_message.json \
@@ -253,18 +289,59 @@ signal_last_msg_age=$(
     | tr -d ' '
 )
 
+mpd_state=$(
+    echo 'status' \
+    | nc 127.0.0.1 6600 \
+    | awk '
+        {
+            status[$1] = $2
+        }
+
+        END {
+            state = status["state:"]
+            symbol = "-"
+            if (state == "play") {
+                symbol = "▶"
+            } else if (state == "pause") {
+                symbol = "❚❚"
+            } else if (state == "stop") {
+                symbol = "⬛"
+            }
+            printf("%s", symbol)
+        }
+        '
+)
+
 echo \
 "\
  E$energy\
+ \
+ \
  M$memory\
+ \
+ \
  D$disk\
+ \
+ \
  C=[$cpu  ${temp}°C ${fan}rpm]\
- |\
+ \
+ \
  S=$screen_brightness\
+ \
+ \
  V=$volume\
+ \
+ \
  B:$bluetooth_power\
- W:$wifi\
- |\
+ \
+ \
+ W:[$wifi $(echo "$io_net" | awk '/^wlp3s0/ {print $2, $3}')]\
+ \
+ \
+ $mpd_state\
+ \
+ $signal_last_msg_age\
+ \
  $weather\
  \
  $datetime \
This page took 0.040562 seconds and 4 git commands to generate.