48 lines
801 B
Bash
Executable File
48 lines
801 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
################################
|
|
# Shows info about the CPU
|
|
#
|
|
# Dependencies:
|
|
# - [notify-send]
|
|
#
|
|
# @return {Number(%)}: CPU usage
|
|
################################
|
|
|
|
dir=$(dirname $0)
|
|
source $dir/util.sh
|
|
|
|
full=""
|
|
short=""
|
|
status=0
|
|
|
|
read cpu a b c previdle rest < /proc/stat
|
|
prevtotal=$(calc "$a + $b + $c + $previdle")
|
|
sleep 0.5
|
|
read cpu a b c idle rest < /proc/stat
|
|
total=$(calc "$a + $b + $c + $idle")
|
|
|
|
CPU=$(calc "100 * (($total - $prevtotal) - ($idle - $previdle)) / ($total - $prevtotal)")
|
|
|
|
full="$CPU%"
|
|
short=$full
|
|
|
|
if [ $CPU -ge 90 ]; then
|
|
status=33
|
|
fi
|
|
|
|
case $BLOCK_BUTTON in
|
|
|
|
# right click: show packages
|
|
3)
|
|
n=16
|
|
summary=$(ps -eo pcpu,pmem,pid,comm --sort=-pcpu | head -$n)
|
|
notify-send "Top $n CPU-eaters" "$summary"
|
|
;;
|
|
|
|
esac
|
|
|
|
echo $full
|
|
echo $short
|
|
exit $status
|