+ echo
+
+ echo 'resources'
+ (
+ free | awk '$1 == "Mem:" {print $3, $2, "mem"}'
+ df ~ | awk 'NR == 2 {print $3, $3 + $4, "disk"}'
+ status_batt
+ ) \
+ | bar_gauge -v width=60 -v pct=1 \
+ | column -t \
+ | indent "$indent_unit"
+
+ echo
+
+ printf '%smem by proc\n' "$indent_unit"
+ ps -eo rss,cmd \
+ | awk -v total="$(free | awk '$1 == "Mem:" {print $2; exit}')" '
+ NR > 1 {
+ rss = $1
+ cmd = $2
+ n = split(cmd, path, "/") # _may_ be a path
+ proc = path[n]
+ by_proc[proc] += rss
+ }
+
+ END {
+ for (proc in by_proc)
+ print by_proc[proc], total, proc
+ }
+ ' \
+ | flat_top_5 \
+ | indent "${indent_unit}${indent_unit}"
+
+ echo
+
+ local _dir temp_input label_file label
+
+ printf '%sthermal\n' "$indent_unit"
+ for _dir in /sys/class/hwmon/hwmon*; do
+ cat "$_dir"/name
+ find "$_dir"/ -name 'temp*_input' \
+ | while read -r temp_input; do
+ label_file=${temp_input//_input/_label}
+ if [ -f "$label_file" ]; then
+ label=$(< "$label_file")
+ else
+ label=''
+ fi
+ awk -v label="$label" '{
+ if (label)
+ label = sprintf(" (%s)", label)
+ printf("%.2f°C%s\n", $1 / 1000, label)
+ }' \
+ "$temp_input"
+ done \
+ | sort \
+ | indent "$indent_unit"
+ done \
+ | indent "${indent_unit}${indent_unit}"
+
+ echo 'net'
+ #local -r internet_addr=$(internet_addr 0.5)
+ #local -r internet_ptr=$(host -W 1 "$internet_addr" | awk 'NR == 1 {print $NF}' )
+
+ #echo "${indent_unit}internet"
+ #echo "${indent_unit}${indent_unit}$internet_addr $internet_ptr"
+ echo "${indent_unit}if"
+ (ifconfig; iwconfig) 2> /dev/null \
+ | awk '
+ /^[^ ]/ {
+ device = $1
+ sub(":$", "", device)
+ if ($4 ~ "ESSID:") {
+ _essid = $4
+ sub("^ESSID:\"", "", _essid)
+ sub("\"$", "", _essid)
+ essid[device] = _essid
+ }
+ next
+ }
+
+ /^ / && $1 == "inet" {
+ address[device] = $2
+ next
+ }
+
+ /^ +Link Quality=[0-9]+\/[0-9]+ +Signal level=/ {
+ split($2, lq_parts_eq, "=")
+ split(lq_parts_eq[2], lq_parts_slash, "/")
+ cur = lq_parts_slash[1]
+ max = lq_parts_slash[2]
+ link[device] = cur / max * 100
+ next
+ }
+
+ END {
+ for (device in address)
+ if (device != "lo") {
+ l = link[device]
+ e = essid[device]
+ l = l ? sprintf("%.0f%%", l) : "--"
+ e = e ? e : "--"
+ print device, address[device], e, l