1. 程式人生 > >Ubuntu在標題欄顯示CPU、記憶體、網速和溫度

Ubuntu在標題欄顯示CPU、記憶體、網速和溫度

1. 安裝System Monitor Indicator:
sudo add-apt-repository ppa:alexeftimie/ppa
sudo apt-get update
sudo apt-get install indicator-sysmonitor
2. 預設只顯示CPU、記憶體,要顯示上下行網速和溫度的話需要安裝另外兩個東西:
sudo apt-get install dstat
sudo apt-get install acpi
#!/bin/bash

#settings:
netspeed=true
ram=true
cpu=true
temp=false
#---------------- initialize ---------------------------
rm /tmp/.sysmon > /dev/null 2>&1
dstat --net --mem --cpu --output=/tmp/.sysmon 1 1 > /dev/null 2>&1
#----------- up/down speed -----------------------------
if [ $netspeed = true ]; then
upspeed=$(echo $(cat /tmp/.sysmon | tail -1 | cut -d ',' -f2)/1024 | bc)
upkbmb=$(if [ $upspeed -gt 1024 ]; then 
		up1=$(echo $(cat /tmp/.sysmon | tail -1 | cut -d ',' -f2)/1024/1024 | bc -l)
		echo $up1 | head -c 4
	else 
		echo $upspeed | head -c 3
	fi)
downspeed=$(echo $(cat /tmp/.sysmon | tail -1 | cut -d ',' -f1)/1024 | bc)
downkbmb=$(if [ $downspeed -gt 1024 ]; then 
		down1=$(echo $(cat /tmp/.sysmon | tail -1 | cut -d ',' -f1)/1024/1024 | bc -l)
		echo $down1 | head -c 4
	else 
		echo $downspeed | head -c 3
	fi)
#---------------- up/down speed unit --------------------
upunit=$(if [ $upspeed -gt 1024 ]; then echo "MiB/s"; else echo "KiB/s"; fi)
downunit=$(if [ $downspeed -gt 1024 ]; then echo "MiB/s"; else echo "KiB/s"; fi)
fi
#------------------- CPU % used -------------------------
if [ $cpu = true ]; then
cpufree=$(cat /tmp/.sysmon | tail -1 | cut -d ',' -f9)
cpuused=$(echo 100-$cpufree | bc | sed -e 's/\..*//')
fi
#------------------- RAM % used --------------------------
if [ $ram = true ]; then
memused=$(free -m | grep buffers/cache | tr -s ' ' | cut -d' ' -f 3)
memfree=$(free -m | grep buffers/cache | tr -s ' ' | cut -d' ' -f 4)
memtotal=$(echo $memused+$memfree | bc -l)
memusedpercent=$(echo 100-100*$memfree/$memtotal | bc)
fi
#------------------- CPU °C Temp-------------------------
if [ $temp = true ]; then
cputemp=$(acpi -t | cut -c 16-20)°C
fi  
#------------------ The Indicator Sysmonitor actual output -
echo $(if [ $cpu = true ]; then echo CPU: $cpuused% \|; fi) $(if [ $ram = true ]; then echo Mem: $memusedpercent% \|; fi) $(if [ $temp = true ]; then echo Temp: $cputemp \|; fi)  $(if [ $netspeed = true ]; then echo ↑ $upkbmb $upunit  ↓ $downkbmb $downunit; fi)
然後settings中想顯示的設為true,不想顯示的設為false。 4. 找到System Monitor Indicator的設定,按下圖配置,Customize output中有{sysmon}就可以:
5. 由於軟體預設顯示圖示是 sysmonitor.svg,而在 Ubuntu 14.04 系統中沒有這個圖示,就會導致圖示顯示錯誤,很不美觀。我們可以把軟體預設使用的圖示改成一個存在的圖示,當然也可以自己動手製作一個圖示。但是系統中已經有很多圖示了,找個好點的直接用上就行! 系統圖標存放在/usr/share/icons/Humanity/apps/XX目錄下(XX 為:128、16、192、22、24、32、48、64中任意一個,對應同一圖示的不同尺寸,同一圖示並不是每個尺寸都有,其中48的最多)。例如開啟/usr/share/icons/Humanity/apps/48,發現 utilities-system-monitor.svg 還不錯,我就用這個圖示,當然用其他的或者自己製作也是可以的。 找到喜歡的圖示後,記下圖示的檔名(不包括字尾),下面開始進行替換。終端執行命令:
sudo gedit /usr/bin/indicator-sysmonitor
將 724 行的 sysmonitor 改為剛才記下的utilities-system-monitor