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
 |