STATUS_FILE__WIFI=$STATUS_DIR/wifi
STATUS_FILE__ENERGY_NOTIFIED_BELLOW_HALF=$STATUS_DIR/notified_energy_bellow_half
-SYMBOL_WIFI='📶'
-
-#load=$(cat /proc/loadavg | awk '{printf "%4.2f %4.2f %4.2f", $1, $2, $3}')
+load=$(awk '{printf("%4.2f", $1)}' /proc/loadavg)
fan=$(awk '/^speed:/ {printf "%4d", $2}' /proc/acpi/ibm/fan)
printf("%s[%d%% %s]", direction, curr_perc, disk_io);
}')
-io_net=$(
- awk '
+network=$(
+ ip -s addr \
+ | awk -v wifi_conn=$(cat $STATUS_FILE__WIFI) '
BEGIN {
bytes_per_unit = 1024 * 1024
}
- NR > 2 {
- device = $1; sub(":$", "", device);
- curr_read = $2;
- curr_write = $10;
+ /^[0-9]+:/ {
+ sub(":$", "", $1)
+ sub(":$", "", $2)
+ sequence = $1
+ interface = $2
+ interfaces[sequence] = interface
+ }
+
+ /^ +inet [0-9]/ {
+ sub("/[0-9]+", "", $2)
+ addr = $2
+ addrs[interface] = addr
+ }
+
+ /^ +RX: / {transfer_direction = "r"}
+ /^ +TX: / {transfer_direction = "w"}
- 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";
+ /^ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+ *$/ {
+ io[interface, transfer_direction] = $1;
+ }
- getline prev_read < prev_read_file;
- getline prev_write < prev_write_file;
+ END {
+ for (i=1; i<=sequence; i++) {
+ interface = interfaces[i]
+ if (addrs[interface]) {
+ curr_read = io[interface, "r"]
+ curr_write = io[interface, "w"]
- diff_read = (curr_read - prev_read ) / bytes_per_unit;
- diff_write = (curr_write - prev_write) / bytes_per_unit;
+ prefix = "/home/siraaj/var/run/status/io_net_" interface
+ prev_read_file = prefix "_read"
+ prev_write_file = prefix "_write"
- print curr_read > prev_read_file;
- print curr_write > prev_write_file;
+ getline prev_read < prev_read_file
+ getline prev_write < prev_write_file
- printf("%s %0.3fâ–² %0.3fâ–¼\n", device, diff_write, diff_read);
- }
- ' /proc/net/dev
+ diff_read = (curr_read - prev_read ) / bytes_per_unit
+ diff_written = (curr_write - prev_write) / bytes_per_unit
+
+ print curr_read > prev_read_file
+ print curr_write > prev_write_file
+
+ io_stat = sprintf("%0.3fâ–² %0.3fâ–¼", diff_written, diff_read)
+ } else {
+ io_stat = "--"
+ }
+
+ label = substr(interface, 1, 1)
+ if (interface == "wlp3s0") {
+ label = label ":" wifi_conn
+ }
+
+ if (i == sequence) {
+ sep = ""
+ } else {
+ sep = " | "
+ }
+
+ printf("%s:%s%s", label, io_stat, sep)
+ }
+ }'
)
energy=$(
volume="[$volume_pactl]"
-wifi=$(cat $STATUS_FILE__WIFI)
-
screen_brightness=$(
max=$(cat /sys/class/backlight/acpi_video0/max_brightness)
cur=$(cat /sys/class/backlight/acpi_video0/brightness)
months = days / 30;
#fmt = "%.1f";
fmt = "%d";
- #printf(fmt " s\n", seconds);
+ printf(fmt " s\n", seconds);
printf(fmt " m\n", minutes);
printf(fmt " h\n", hours);
printf(fmt " d\n", days);
'
)
+mpd_current=$(
+ echo 'currentsong' \
+ | nc 127.0.0.1 6600 \
+ | awk -v max_chars=10 '
+ /^OK/ {
+ next
+ }
+
+ {
+ key = $1
+ val = $2
+ for (i=3; i<=NF; i++) {val = val " " $i}
+ data[key] = val
+ }
+
+ END {
+ if (data["Name:"]) {
+ out = data["Name:"]
+ } else if (data["Title:"]) {
+ out = data["Title:"]
+ } else {
+ file = data["file:"]
+ last = split(file, parts, "/")
+ out = parts[last]
+ }
+ printf("%s", substr(out, 1, max_chars))
+ }
+ '
+)
+
+graphics_card=$(
+ nvidia-smi \
+ --format=csv,noheader,nounits \
+ --query-gpu=memory.total,memory.used,temperature.gpu \
+ | awk -F ',' '
+ {
+ mem_total = $1;
+ mem_used = $2;
+ temp = $3;
+ mem_used_percent = (100 * mem_used) / mem_total;
+ printf("[%d%% %dC]", mem_used_percent, temp);
+ }
+ '
+)
+
echo \
"\
E$energy\
\
+ G=$graphics_card\
\
M$memory\
\
- \
C=[$cpu ${temp}°C ${fan}rpm]\
\
+ L=$load\
\
D$disk\
\
- \
- $SYMBOL_WIFI [$wifi $(echo "$io_net" | awk '/^wlp3s0/ {print $2, $3}')]\
- \
+ N:[$network]\
\
B:$bluetooth_power\
\
- \
S=$screen_brightness\
\
- \
V=$volume\
\
- $mpd_state\
+ [$mpd_state $mpd_current]\
\
$signal_last_msg_age\
\