STATUS_FILE__WIFI=$STATUS_DIR/wifi
STATUS_FILE__ENERGY_NOTIFIED_BELLOW_HALF=$STATUS_DIR/notified_energy_bellow_half
-#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)
bytes_per_unit = 1024 * 1024
}
- NR > 2 {
+ FILENAME == "/proc/net/dev" && NR > 2 {
device = $1; sub(":$", "", device);
curr_read = $2;
curr_write = $10;
print curr_read > prev_read_file;
print curr_write > prev_write_file;
- devices[device] = sprintf("%0.3f▲ %0.3f▼", diff_write, diff_read);
+ io_rates[device] = sprintf("%0.3f▲ %0.3f▼", diff_write, diff_read);
+
+ next;
+ }
+
+ /^[a-zA-Z0-9]/ {
+ interface = $1
+ interfaces[interface_count++] = interface
+ }
+
+ /^ +inet addr:/ {
+ split($2, addr, ":")
+ ipaddr = addr[2]
+ ipaddrs[interface] = ipaddr
}
END {
- lo = devices["lo"]
- #eth = devices["enp0s25"]
- wifi = devices["wlp3s0"]
- printf("[%s | %s %s]", lo, wifi_conn, wifi)
+ canvas = ""
+ i_last = length(ipaddrs)
+ for (interface in ipaddrs) {
+ #ipaddr = ipaddrs[interface]
+
+ if (++i_curr == i_last) {
+ sep = ""
+ } else {
+ sep = " |"
+ }
+
+ if (interface == "wlp3s0") {
+ curr = wifi_conn " " io_rates[interface]
+ } else if (interface == "lo") {
+ curr = interface " " io_rates[interface]
+ } else {
+ curr = "e" ++eth_count " " io_rates[interface]
+ }
+
+ canvas = canvas " " curr sep
+ }
+ canvas = "[" canvas "]"
+ printf("%s", canvas)
}
- ' /proc/net/dev
+ ' \
+ /proc/net/dev \
+ <(ifconfig)
)
energy=$(
'
)
+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 {
+ 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\
\
\
\
V=$volume\
\
- $mpd_state\
+ [$mpd_state $mpd_current]\
\
$signal_last_msg_age\
\