mirror of
https://github.com/arthur-pbty/arthur-os.git
synced 2026-08-01 20:28:16 +02:00
60 lines
1.1 KiB
Bash
Executable File
60 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# omarchy:summary=Print CPU and memory stats for the shell
|
|
# omarchy:group=system
|
|
# omarchy:args=[--bar-widget]
|
|
|
|
bar_widget_stats() {
|
|
awk '
|
|
NR == 1 {
|
|
idle = $5
|
|
total = 0
|
|
for (i = 2; i <= NF; i++) total += $i
|
|
printf "cpu\t%s\t%s\n", idle, total
|
|
}
|
|
' /proc/stat
|
|
|
|
awk '
|
|
/^MemTotal:/ { total = $2 }
|
|
/^MemAvailable:/ { avail = $2 }
|
|
END {
|
|
if (total > 0) printf "memory\t%.2f\n", ((total - avail) / total) * 100
|
|
}
|
|
' /proc/meminfo
|
|
|
|
awk '{ print "load\t" $1 }' /proc/loadavg
|
|
}
|
|
|
|
case "${1:-}" in
|
|
"")
|
|
;;
|
|
--bar-widget)
|
|
bar_widget_stats
|
|
exit
|
|
;;
|
|
*)
|
|
echo "Usage: omarchy-system-stats [--bar-widget]" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
cpu=$(top -bn1 | awk '/^%?Cpu/ {
|
|
gsub(/,/, "")
|
|
for (i = 1; i <= NF; i++) {
|
|
if ($(i + 1) == "id") {
|
|
printf "%.0f%%", 100 - $i
|
|
exit
|
|
}
|
|
}
|
|
}')
|
|
|
|
awk -v cpu="$cpu" '
|
|
/^MemTotal:/ { total = $2 }
|
|
/^MemAvailable:/ { avail = $2 }
|
|
END {
|
|
used = total - avail
|
|
printf "cpu\t%s\n", cpu
|
|
printf "memory\t%.1fGB / %.0fGB\n", used / 1024 / 1024, total / 1024 / 1024
|
|
}
|
|
' /proc/meminfo
|