added wayland and sway configs
This commit is contained in:
Executable
+54
@@ -0,0 +1,54 @@
|
||||
#!/bin/bash
|
||||
# Temp file to store previous readings
|
||||
tmpfile="/tmp/cpu_prev_all"
|
||||
|
||||
# Get all per-core lines
|
||||
mapfile -t cpu_lines < <(grep '^cpu[0-9]' /proc/stat)
|
||||
|
||||
# On first run, save and exit
|
||||
if [[ ! -f $tmpfile ]]; then
|
||||
printf "%s\n" "${cpu_lines[@]}" > "$tmpfile"
|
||||
echo "..." # No previous data
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Load previous readings
|
||||
mapfile -t prev_lines < "$tmpfile"
|
||||
|
||||
# Sanity check
|
||||
if (( ${#cpu_lines[@]} != ${#prev_lines[@]} )); then
|
||||
echo "..." # Core count mismatch (e.g., suspend/resume)
|
||||
printf "%s\n" "${cpu_lines[@]}" > "$tmpfile"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
total_usage=0
|
||||
|
||||
for i in "${!cpu_lines[@]}"; do
|
||||
# Current
|
||||
read -r cpu user nice system idle iowait irq softirq steal _ _ <<< "${cpu_lines[$i]}"
|
||||
total_now=$((user + nice + system + idle + iowait + irq + softirq + steal))
|
||||
idle_now=$((idle + iowait))
|
||||
|
||||
# Previous
|
||||
read -r _ pu pn ps pi piw pir psf pst _ _ <<< "${prev_lines[$i]}"
|
||||
total_prev=$((pu + pn + ps + pi + piw + pir + psf + pst))
|
||||
idle_prev=$((pi + piw))
|
||||
|
||||
# Deltas
|
||||
diff_total=$((total_now - total_prev))
|
||||
diff_idle=$((idle_now - idle_prev))
|
||||
|
||||
if ((diff_total > 0)); then
|
||||
usage=$((100 * (diff_total - diff_idle) / diff_total))
|
||||
total_usage=$((total_usage + usage))
|
||||
fi
|
||||
done
|
||||
|
||||
# Output total usage (per-core sum)
|
||||
#echo '{"usage": ${total_usage}%}'}
|
||||
printf "{ \"text\": %6.0f, \"tooltip\": \"%s\" }" "$total_usage" "test"
|
||||
|
||||
|
||||
# Save current readings
|
||||
printf "%s\n" "${cpu_lines[@]}" > "$tmpfile"
|
||||
Reference in New Issue
Block a user