feat(eww): add config
This commit is contained in:
40
eww/scripts/system.sh
Executable file
40
eww/scripts/system.sh
Executable file
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# system metrics as JSON for eww system-popup
|
||||
|
||||
# delta-based cpu: sample /proc/stat twice 0.5s apart
|
||||
read -r _ u1 n1 s1 i1 _ < /proc/stat
|
||||
sleep 0.5
|
||||
read -r _ u2 n2 s2 i2 _ < /proc/stat
|
||||
cpu=$(( (u2+n2+s2 - u1-n1-s1) * 100 / (u2+n2+s2+i2 - u1-n1-s1-i1) ))
|
||||
|
||||
ram_info=$(free -b | awk '/^Mem:/{printf "%.0f %.1f %.1f", $3/$2*100, $3/1073741824, $2/1073741824}')
|
||||
ram_percent=$(awk '{print $1}' <<< "$ram_info")
|
||||
ram_used=$(awk '{printf "%.1f", $2}' <<< "$ram_info")
|
||||
ram_total=$(awk '{printf "%.1f", $3}' <<< "$ram_info")
|
||||
|
||||
temp=$(cat /sys/class/thermal/thermal_zone*/temp 2>/dev/null | sort -rn | head -1)
|
||||
temp=$(( ${temp:-0} / 1000 ))
|
||||
|
||||
disk_info=$(df -h / | awk 'NR==2{gsub(/%/,""); printf "%s %s %s", $5, $3, $2}')
|
||||
disk_percent=$(awk '{print $1}' <<< "$disk_info")
|
||||
disk_used=$(awk '{print $2}' <<< "$disk_info")
|
||||
disk_total=$(awk '{print $3}' <<< "$disk_info")
|
||||
|
||||
swap=$(free -h | awk '/^Swap:/{printf "%s/%s", $3, $2}')
|
||||
load=$(awk '{print $1, $2, $3}' /proc/loadavg)
|
||||
uptime_str=$(uptime -p 2>/dev/null | sed 's/up //' || echo "n/a")
|
||||
|
||||
jq -nc \
|
||||
--argjson cpu "${cpu:-0}" \
|
||||
--argjson ram_percent "${ram_percent:-0}" \
|
||||
--arg ram_used "${ram_used:-0}Gi" \
|
||||
--arg ram_total "${ram_total:-0}Gi" \
|
||||
--argjson temp "${temp:-0}" \
|
||||
--argjson disk_percent "${disk_percent:-0}" \
|
||||
--arg disk_used "$disk_used" \
|
||||
--arg disk_total "$disk_total" \
|
||||
--arg swap "$swap" \
|
||||
--arg load "$load" \
|
||||
--arg uptime "$uptime_str" \
|
||||
'{$cpu,$ram_percent,$ram_used,$ram_total,$temp,$disk_percent,$disk_used,$disk_total,$swap,$load,$uptime}'
|
||||
Reference in New Issue
Block a user