#!/bin/bash
# Variables
refresh=1
statbar="sysbar"
terminal="xterm -e"
browser="chromium"
alignment="right"
color0="#666666"
color1="#C2FFA0"
separator="^s[${alignment};${color0}; ]"
net_interface="eth0"
guser="CHANGE ME"
gpass="CHANGE ME"
_time() {
time="$(date +%X)"
echo "^s[${alignment};${color0};\[TIME\]] ^s[${alignment};${color1}; ${time}]"
}
_date() {
date="$(date +%d-%m-%Y)"
echo "^s[${alignment};${color0};\[DATE\]] ^s[${alignment};${color1}; ${date}]"
}
_cpu() {
cpu="$(eval $(awk '/^cpu /{print "previdle=" $5 "; prevtotal=" $2+$3+$4+$5 }' /proc/stat); sleep 0.4;
eval $(awk '/^cpu /{print "idle=" $5 "; total=" $2+$3+$4+$5 }' /proc/stat);
intervaltotal=$((total-${prevtotal:-0}));
echo "$((100*( (intervaltotal) - ($idle-${previdle:-0}) ) / (intervaltotal) ))")"
echo "^s[${alignment};${color0};\[CPU\]](1;spawn;${terminal} htop) ^s[${alignment};${color1}; ${cpu}%]"
}
_memory() {
mem_used="$(free -m | sed -n 's|^-.*:[ \t]*\([0-9]*\) .*|\1|gp')"
mem_total="$(free -m | sed -n 's|^M.*:[ \t]*\([0-9]*\) .*|\1|gp')"
echo "^s[${alignment};${color0};\[RAM\]](1;spawn;${terminal} htop) ^s[${alignment};${color1}; ${mem_used}\/${mem_total} MB]"
}
_netstats() {
net_upload_total="$(cat /sys/class/net/${net_interface}/statistics/tx_bytes)"
net_download_total="$(cat /sys/class/net/${net_interface}/statistics/rx_bytes)"
net_upload=$((($net_upload_total)/1000000))
net_download=$((($net_download_total)/1000000))
echo "^s[${alignment};${color0};\[NET\]] ^s[${alignment};${color1}; ${net_upload}\/${net_download} Kbp/s]"
}
_mail() {
mail=$(curl -u ${guser}:${gpass} --silent "https://mail.google.com/mail/feed/atom" | tr -d '\n' | awk -F '<entry>' '{for (i=2; i<=NF; i++) {print $i}}' | sed -n "s/<title>\(.*\)<\/title.*name>\(.*\)<\/name>.*/\2 - \1/p" | wc -l)
echo "^s[${alignment};${color0};\[MAIL\]](1;spawn;${browser} https://mail.google.com) ^s[${alignment};${color1}; ${mail}]"
}
while [ -n "$(ps U ${UID} | awk '{print $5}' | grep ^wmfs$)" ]; do
wmfs -c status "${statbar} $(_time) ${separator} $(_date) ${separator} $(_cpu) ${separator} $(_memory) ${separator} $(_netstats)" # ${separator} $(_mail)
sleep $refresh
done