48 lines
801 B
Plaintext
48 lines
801 B
Plaintext
|
#!/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
|