dotfiles/.config/Scripts/status.sh

175 lines
3.4 KiB
Bash
Executable File

#!/bin/sh
# █▓▒░ tmux status
# by xero <http://xero.nu>
# http://git.io/.files
FULL=
EMPTY=
EOL=
SIZE=7
C0="#000000"
C1="#222222"
C2="#1C596E"
C3="#B3291C"
C4="#3A3A3A"
C5="#efefef"
C6="#878787"
C7="#CBB3A0"
draw()
{
perc=$1
SIZE=$2
inc=$(( perc * SIZE / 100 ))
out=
thiscolor=
for v in `seq 0 $(( SIZE - 1 ))`; do
test "$v" -le "$inc" \
&& out="${out}#[fg=$C1]${FULL}" \
|| out="${out}#[fg=$C1]${EMPTY}"
done
echo $out
}
mail()
{
gmaildir=/home/hate/.Mail/Gmail/INBOX/new
prog=/usr/bin/offlineimap
count=0
log=/tmp/mails.log
if [ -x $prog ] ; then
$prog 2>/dev/null &
wait
if [ $? = 0 ] ; then
echo "$(date) - $prog success" >> $log
elif [ $? = 1 ] ; then
echo "$(date) - $prog has fail" >> $log
else
echo "$(date) - unknown prob" >> $log
fi
fi
if [[ ! -d ${gmaildir} ]] ; then
echo "$(date) - $gmaildir does not exist" >> $log
elif [[ ! -n $(ls "${gmaildir}") ]] ; then
echo "$(date) - $gmaildir no new mail found" >> $log
else
count=$(ls -1 "${gmaildir}" | wc -l)
fi
echo "▓ ✉ ${count}"
}
weather()
{
APIKEY="99e2d54517287c6de1e9db99db2fdc84"
CITY_ID="659181" # customise this for your city
URL="http://api.openweathermap.org/data/2.5/weather?id=${CITY_ID}&units=metric&APPID=${APIKEY}"
WEATHER_RESPONSE=$(wget -qO- "${URL}")
WEATHER_CONDITION=$(echo $WEATHER_RESPONSE | jq '.weather[0].main' | sed 's/"//g')
WEATHER_TEMP=$(echo $WEATHER_RESPONSE | jq '.main.temp')
WIND_DIR=$( echo "$WEATHER_RESPONSE" | jq '.wind.deg')
WIND_SPEED=$( echo "$WEATHER_RESPONSE" | jq '.wind.speed')
#WIND_SPEED=$(awk "BEGIN {print 60*60*$WIND_SPEED/1000}")
WIND_SPEED=$(awk "BEGIN {print $WIND_SPEED}")
WIND_DIR=$(awk "BEGIN {print int(($WIND_DIR % 360)/22.5)}")
DIR_ARRAY=( N NNE NE ENE E ESE SE SSE S SSW SW WSW W WNW NW NNW N )
WIND_DIR=${DIR_ARRAY[WIND_DIR]}
case $WEATHER_CONDITION in
'Clouds')
WEATHER_ICON="☁"
;;
'Rain')
WEATHER_ICON="☔"
;;
'Snow')
WEATHER_ICON="☃"
;;
*)
WEATHER_ICON="☀"
;;
esac
echo "${WEATHER_ICON} ${WEATHER_TEMP}°C "
}
pkg()
{
#!/bin/bash
pac=$(checkupdates | wc -l)
aur=$(cower -u | wc -l)
check=$((pac + aur))
if [[ "$check" != "0" ]]
then
echo "▓ Upg:$pac/$aur"
fi
}
temp()
{
t=$(sensors | awk '/Core\ 0/ {gsub(/\+/,"",$3); gsub(/\..+/,"",$3) ; print $3}')
tc=$C0
case 1 in
$((t <= 50)))
tc=$C2
;;
$((t >= 75)))
tc=$C3
;;
esac
echo "#[fg=$tc]$t°c"
}
bat()
{
BATPATH=/sys/class/power_supply/CMB1
STATUS=$BATPATH/status
BAT_FULL=$BATPATH/charge_full
BAT_NOW=$BATPATH/charge_now
bf=$(cat $BAT_FULL)
bn=$(cat $BAT_NOW)
stat=$(cat $STATUS)
case $stat in
Full)
st="="
;;
Discharging)
st="-"
;;
Charging)
st="+"
;;
esac
echo "Bat: $st$(( 100 * $bn / $bf ))"%""
}
cpu()
{
CPU_USE=$(grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage}')
printf "%.0f" $CPU_USE
}
ram()
{
free | awk '/Mem:/ {print int($3/$2 * 100.0)}'
}
clock()
{
mtime=$(date +'%H:%M')
myear=$(date +'%m-%Y')
mday=$(date +'%d-')
echo "#[fg=$C5]#[bg=$C4] $mtime #[fg=$C5]$mday#[fg=$C6]$myear #[fg=$C6]$EOL"
}
front()
{
echo "▓░"
#echo "#[bg=$C7]#[fg=$C1]▓░"
}
CPU_INFO=`cpu`
RAM_INFO=`ram`
echo `front` `weather` `pkg` `mail` `bat` `draw $RAM_INFO 4` `temp` `draw $CPU_INFO 7` `clock`
#echo `front` `weather` `pkg` `mail` `temp` `clock`