#!/bin/sh # Module showing overall CPU usage as a percentage. # Cache in tmpfs to improve speed and reduce SSD load cache=/tmp/cpubarscache # Extract CPU stats (total time and idle time) cpu_stats=$(awk '/^cpu / {print $2 + $3 + $4 + $5, $5}' /proc/stat) # Check if cache exists, if not, initialize it [ ! -f $cache ] && echo "$cpu_stats" > "$cache" # Read previous CPU stats from cache prev_stats=$(cat "$cache") # Calculate CPU usage percentage and exit immediately echo "$cpu_stats $prev_stats" | awk '{ total_diff = $1 - $3 idle_diff = $2 - $4 usage = 100 * (1 - idle_diff / total_diff) printf " %.1f%%\n", usage exit # Terminate script after printing the first line }' # Update cache with current stats echo "$cpu_stats" > "$cache"