#!/bin/bash
# Depends: dzen2-xft-xpm-xinerama-svn && conky
# Desc: dzen2 bar for XMonad, ran within xmonad.hs via spawnPipe
#Layout
BAR_H=9
BIGBAR_W=65
WIDTH_L=870
WIDTH_R=410 #WIDTH_L + WIDTH_R = 1280
HEIGHT=16
X_POS_L=0
X_POS_R=$WIDTH_L
Y_POS=0
#Colors and font
CRIT="#99cc66"
BAR_FG="#3475aa"
BAR_BG="#363636"
DZEN_FG="#9d9d9d"
DZEN_FG2="#444444"
DZEN_BG="#020202"
COLOR_SEP=$DZEN_FG2
FONT="-*-montecarlo-medium-r-normal-*-11-*-*-*-*-*-*-*"
#Conky
CONKYFILE="${HOME}/.config/conky/conkyrc"
IFS='|'
INTERVAL=1
CPUTemp=0
GPUTemp=0
CPULoad0=0
CPULoad1=0
MpdInfo=0
MpdRandom="Off"
MpdRepeat="Off"
printVolInfo() {
Perc=$(amixer get Master | grep "Mono:" | awk '{print $4}' | tr -d '[]%')
Mute=$(amixer get Master | grep "Mono:" | awk '{print $6}')
echo -n "^fg($DZEN_FG2) VOL "
if [[ $Mute == "[off]" ]]; then
echo -n "$(echo $Perc | gdbar -fg $CRIT -bg $BAR_BG -h $BAR_H -w $BIGBAR_W -s o -ss 1 -sw 2 -nonl) "
echo -n "^fg()off"
else
echo -n "$(echo $Perc | gdbar -fg $BAR_FG -bg $BAR_BG -h $BAR_H -w $BIGBAR_W -s o -ss 1 -sw 2 -nonl) "
echo -n "^fg()${Perc}%"
fi
return
}
#printVolInfo() {
# Perc=$(expr 4 \* $(ossmix vmix0-outvol | awk '{print $10}' | sed -e 's/.0//g')
#}
printVolInfo() {
Perc=$(amixer get Master | grep "Mono:" | awk '{print $4}' | tr -d '[]%')
Mute=$(amixer get Master | grep "Mono:" | awk '{print $6}')
echo -n "^fg($DZEN_FG2) VOL "
if [[ $Mute == "[off]" ]]; then
echo -n "$(echo $Perc | gdbar -fg $CRIT -bg $BAR_BG -h $BAR_H -w $BIGBAR_W -s o -ss 1 -sw 2 -nonl) "
echo -n "^fg()off"
else
echo -n "$(echo $Perc | gdbar -fg $BAR_FG -bg $BAR_BG -h $BAR_H -w $BIGBAR_W -s o -ss 1 -sw 2 -nonl) "
echo -n "^fg()${Perc}%"
fi
return
}
printCPUInfo() {
[[ $CPULoad0 -gt 70 ]] && CPULoad0="^fg($CRIT)$CPULoad0^fg()"
[[ $CPULoad1 -gt 70 ]] && CPULoad1="^fg($CRIT)$CPULoad1^fg()"
echo -n " ^fg($DZEN_FG2)CPU ^fg($BAR_FG)${CPULoad0}%^fg($DZEN_FG2)/^fg($BAR_FG)${CPULoad1}%"
return
}
printTempInfo() {
CPUTemp=$(acpi --thermal | awk '{print substr($4,0,2)}')
GPUTemp=$(nvidia-settings -q gpucoretemp | grep 'Attribute' | awk '{print $4}' | tr -d '.')
[[ $CPUTemp -gt 70 ]] && CPUTemp="^fg($CRIT)$CPUTemp^fg()"
[[ $GPUTemp -gt 70 ]] && GPUTemp="^fg($CRIT)$GPUTemp^fg()"
echo -n "^fg($DZEN_FG2)TEMP ^fg($BAR_FG)${CPUTemp}°^fg($DZEN_FG2)/^fg($BAR_FG)${GPUTemp}°"
return
}
printMemInfo() {
[[ $MemPerc -gt 70 ]] && CPUTemp="^fg($CRIT)$MemPerc^fg()"
echo -n "^fg($DZEN_FG2)MEM ^fg($BAR_FG)${MemPerc}%"
return
}
printDropBoxInfo() {
DropboxON=$(ps -A | grep -c dropbox)
if [[ $DropboxON == "0" ]]; then
echo -n "^fg($DZEN_FG2)DROPBOX ^fg()Off"
else
echo -n "^fg($DZEN_FG2)DROPBOX ^fg($CRIT)On"
fi
return
}
printMpdInfo() {
MPDON=$(ps -A | grep -c mpd)
if [[ $MPDON == "0" ]]; then
echo -n "^fg($DZEN_FG2)MPD ^fg()Off"
else
# if [[ $MpdRepeat -eq "(null)" ]]; then
# echo -n "^fg($DZEN_FG2)MPD ^fg()Offline"
# [[ $(ncmpcpp --now-playing | wc -l) == 1 ]] && echo -n " ^fg($DZEN_FG2)| ^fg($BAR_FG)$(ncmpcpp --now-playing "%a") ^fg($DZEN_FG2)- ^fg($BAR_FG)$(ncmpcpp --now-playing "%t") ^fg($DZEN_FG2)| ^fg()$(ncmpcpp --now-playing "%l")"
# else
[[ $MpdRepeat == "On" ]] && MpdRepeat="^fg($CRIT)$MpdRepeat^fg()"
[[ $MpdRandom == "On" ]] && MpdRandom="^fg($CRIT)$MpdRandom^fg()"
echo -n "^fg($DZEN_FG2)REPEAT ^fg()$MpdRepeat ^fg($DZEN_FG2)| RANDOM ^fg()$MpdRandom ^fg($DZEN_FG2)| MPD $MpdInfo"
# fi
fi
return
}
printDateInfo() {
echo -n "^fg()$(date '+%Y^fg(#444).^fg()%m^fg(#444).^fg()%d^fg(#3475aa)/^fg(#444444)%a ^fg(#363636)| ^fg()%H^fg(#444):^fg()%M^fg(#444):^fg()%S') "
return
}
printSpace() {
echo -n " ^fg($COLOR_SEP)|^fg() "
return
}
printLeft() {
while true; do
read CPULoad0 CPULoad1 CPUFreq MemUsed MemPerc MpdInfo MpdRandom MpdRepeat
printVolInfo
printSpace
printDropBoxInfo
printSpace
printMpdInfo
echo -n " ^fg()>^fg($BAR_FG)>^fg($DZEN_FG2)>"
echo
done
return
}
printRight() {
while true; do
read CPULoad0 CPULoad1 CPUFreq MemUsed MemPerc MpdInfo MpdRandom MpdRepeat
printCPUInfo
printSpace
printMemInfo
printSpace
printTempInfo
printSpace
printDateInfo
echo
done
return
}
#Print all and pipe into dzen
conky -c $CONKYFILE -u $INTERVAL | printLeft | dzen2 -x $X_POS_L -y $Y_POS -w $WIDTH_L -h $HEIGHT -fn $FONT -ta 'l' -bg $DZEN_BG -fg $DZEN_FG -p -e '' &
conky -c $CONKYFILE -u $INTERVAL | printRight | dzen2 -x $X_POS_R -y $Y_POS -w $WIDTH_R -h $HEIGHT -fn $FONT -ta 'r' -bg $DZEN_BG -fg $DZEN_FG -p -e ''