#!/bin/bash ############################################################ # Battery charge. BATTERY=C1B2 ### <- Battery ID cat /proc/acpi/battery/${BATTERY}/state | grep ' charged' 2>&1 >/dev/null && TIME_LEFT="" || DO_BATTERY=1 if [[ -n ${DO_BATTERY} ]]; then CHARGE_REMAINING=`cat /proc/acpi/battery/${BATTERY}/state | grep "remaining capacity" | awk '{print $3}'` DISCHARGE_RATE=`cat /proc/acpi/battery/${BATTERY}/state | grep "present rate" | awk '{print $3}'` [[ $DISCHARGE_RATE -ne 0 ]] && ((HOURS_LEFT=${CHARGE_REMAINING}/${DISCHARGE_RATE})) MINUTES_LEFT=`echo "scale=2; ((${CHARGE_REMAINING}/${DISCHARGE_RATE})-${HOURS_LEFT})*0.6" | bc` cat /proc/acpi/battery/${BATTERY}/state | grep ' charging' 2>&1 >/dev/null && TIME_LEFT="[Charging] · " || TIME_LEFT="-${HOURS_LEFT}${MINUTES_LEFT}h · " fi ############################################################ # CPU Usage B=( `cat /proc/stat | head -n1 | gawk '{print $2 " " $3 " " $4 " " $5}'` ) sleep 2s; # Sample some real CPU usage time... E=( `cat /proc/stat | head -n1 | gawk '{print $2 " " $3 " " $4 " " $5}'` ) UPTIME=`echo "(100*((${E[0]}-${B[0]})+(${E[1]}-${B[1]})+(${E[2]}-${B[2]})))/((${E[0]}-${B[0]})+(${E[1]}-${B[1]})+(${E[2]}-${B[2]})+(${E[3]}-${B[3]}))" | bc` UPTIME="${UPTIME}%" ############################################################ # Tkabber UNREAD messages NUMBER=$(xprop -id `xwininfo -root -children 2>/dev/null | grep Tkabber | awk '{print $1}'` 2>/dev/null | grep 'WM_NAME(STRING) = "(' | sed 's/^.*"(//;s/\*.*$//') [[ ${NUMBER} -ge 1 ]] && TKABBER="Tkabber: ${NUMBER} · " ############################################################ # Wireless status (ESSID and percentage) INTERFACE=eth2 ESSID=`iwconfig 2>/dev/null | grep "^${INTERFACE}" | sed -r 's/^.*ESSID:"([A-Za-z0-9\-]+).*$/\1/'` STRENGTH=`iwconfig 2>/dev/null | grep 'Link Quality' | sed -r 's/^.*Link Quality.([[:digit:]]+).*$/\1%/'` [[ "${ESSID}" != "${INTERFACE} radio off ESSID:off/any " && "${STRENGTH}" != "0%" ]] && WIRELESS="${ESSID} ${STRENGTH} · " ############################################################ # Date DATE="`date '+%H:%M:%S, %a %d/%m/%y'` · " ############################################################ # All put together STATUS="${TKABBER}${TIME_LEFT}${WIRELESS}${DATE}${UPTIME}" echo ${STATUS} > .dwm-status