Some Handy wmii Odds'n'Sods
I'll get around to adding some useful information here on scripts I have done for wmii, but for now this is all you are getting. This is a useful chunk of script in my '~/.wmii-hg/wmiirc_local' configuration:
wmiir write /rules <<!
/termPopup/ floating=on
/MPlayer|VLC/ floating=on
/linphone/ floating=on
/Navigator|Chrome|Opera/ tags=2
!
sb_tmp() {
local TEMP
[ -z $(wmiir ls /rbar | grep "$2_$1") ] && echo "colors $WMII_NORMCOLORS" | wmiir create "/rbar/$2_$1"
TEMP=$(cat /sys/devices/platform/coretemp.0/temp1_input)
TEMP=$((${TEMP}/1000))
echo -n "label TMP: ${TEMP}C" | wmiir write "/rbar/$2_$1"
}
sb_date() {
local DATE
if [ "x$3" = "xevent" ]; then
[ $4 -eq 1 ] && $WMII_TERM -name termPopup -geometry 156x47-0-0 -wf -e /bin/sh -c 'eval $(resize) && rem -c -w${COLUMNS} && read moo' &
[ $4 -eq 2 ] && $WMII_TERM -name termPopup -geometry 64x35-0-0 -wf -e /bin/sh -c 'cal -y && read moo' &
[ $4 -eq 3 ] && $WMII_TERM -wf -e /usr/bin/wyrd &
return
fi
[ -z $(wmiir ls /rbar | grep "$2_$1") ] && echo "colors $WMII_NORMCOLORS" | wmiir create "/rbar/$2_$1"
DATE=$(date +'%a %b %d %H:%M %Z %Y')
echo -n "label $DATE" | wmiir write "/rbar/$2_$1"
}
sb_load() {
local UPTIME
if [ "x$3" = "xevent" ]; then
[ $4 -eq 1 ] && $WMII_TERM -name termPopup -geometry 80x40-0-0 -wf -e /usr/bin/top &
return
fi
[ -z $(wmiir ls /rbar | grep "$2_$1") ] && echo "colors $WMII_NORMCOLORS" | wmiir create "/rbar/$2_$1"
UPTIME=$(uptime | sed 's/.*://; s/,//g')
echo -n "label $UPTIME" | wmiir write "/rbar/$2_$1"
}
sb_bat() {
local BAT BAR REMAIN STATUS FULL PCNTREMAIN DRAIN PCNTDRAIN DIR
BAT=CMB1
BAR=$(wmiir ls /rbar | grep "$2_$1")
if [ ! -d /sys/class/power_supply/${BAT} ]; then
if [ ${#BAR} -ne 0 ]; then
wmiir remove "/rbar/$2_$1" 2> /dev/null || true
fi
return
fi
[ ${#BAR} -eq 0 ] && echo "colors $WMII_NORMCOLORS" | wmiir create "/rbar/$2_$1"
REMAIN=$(cat /sys/class/power_supply/${BAT}/charge_now)
if [ -z "$REMAIN" ]; then
echo -n "label BAT: <MISSING>" | wmiir write "/rbar/$2_$1"
return
fi
STATUS=$(cat /sys/class/power_supply/${BAT}/status)
if [ "$STATUS" = "Unknown" \
-o "$STATUS" = "Not charging" \
-o "$STATUS" = "Full" ]; then
echo -n "label BAT: $((${REMAIN}/1000))mAh Charged" | wmiir write "/rbar/$2_$1"
return
fi
FULL=$(cat /sys/class/power_supply/${BAT}/charge_full)
FULL=$((${FULL}/1000))
# divide by 10 as we have divided FULL by 1000
PCNTREMAIN=$((${REMAIN}/${FULL}/10))
DRAIN=$(cat /sys/class/power_supply/${BAT}/current_now)
PCNTDRAIN=$((${DRAIN}/${FULL}/10))
[ "$STATUS" = "Charging" ] && DIR="+" || DIR="-"
echo -n "label BAT: ${PCNTREMAIN}%${DIR}${PCNTDRAIN}%/h" | wmiir write "/rbar/$2_$1"
}
sb_wlan() {
local INT BAR SSID APMAC SIGNAL RATE
INT=$(cat /proc/net/wireless | awk 'BEGIN { FS="[ :]" } /:/ { print $2 }' | head -n1)
BAR=$(wmiir ls /rbar | grep "$2_$1")
if [ ! -d /sys/class/net/${INT} ]; then
if [ ${#BAR} -ne 0 ]; then
wmiir remove "/rbar/$2_$1" 2> /dev/null || true
fi
return
fi
[ ${#BAR} -eq 0 ] && echo "colors $WMII_NORMCOLORS" | wmiir create "/rbar/$2_$1"
if [ $(cat /sys/class/net/${INT}/carrier) -eq 0 ]; then
echo -n "label WLAN: <NO CARRIER>" | wmiir write /rbar/$2_$1
return
fi
SSID=$(/sbin/iwgetid ${INT} --raw)
APMAC=$(/sbin/iwgetid ${INT} --raw --ap)
SIGNAL=$(/usr/sbin/iw dev ${INT} station get ${APMAC} | awk '/signal:/ { print $2 }')
RATE=$(/usr/sbin/iw dev ${INT} station get ${APMAC} | awk '/tx bitrate:/ { printf "%d", $3 }')
echo -n "label WLAN: ${SSID} [${SIGNAL}dBm @ ${RATE}Mb]" | wmiir write /rbar/$2_$1
}
# Status Bar Info
status() {
local STATUSBAR
STATUSBAR="sb_wlan sb_bat sb_tmp sb_load sb_date"
while true; do
local I
wmiir ls / > /dev/null 2> /dev/null
[ $? -ne 0 ] && exit $?
I=0
for F in $STATUSBAR; do
eval $F $F $(printf status%02d $I)
I=$(($I+1))
done
sleep 5
done
}
local_events() {
cat <<'!'
Event RightBarClick
eval "${2#*_} ${2#*_} ${2%%_*} event $1"
Action status
for BAR in $(wmiir ls /rbar | grep -v '!'); do wmiir remove "/rbar/$BAR"; done
status
!
cat <<!
Key $MODKEY-Control-, # Select the stack above
wmiir xwrite /tag/sel/ctl select up stack
Key $MODKEY-Control-. # Select the stack below
wmiir xwrite /tag/sel/ctl select down stack
Key $MODKEY-Control-$LEFT
wmiir xwrite /tag/sel/ctl nudge client sel left 5
Key $MODKEY-Control-$RIGHT
wmiir xwrite /tag/sel/ctl nudge client sel right 5
Key $MODKEY-Control-$DOWN
wmiir xwrite /tag/sel/ctl nudge client sel down 5
Key $MODKEY-Control-$UP
wmiir xwrite /tag/sel/ctl nudge client sel up 5
!
local I
for I in $(seq 0 9); do
cat <<!
Key $MODKEY-Control-$I
wmiir xwrite /client/sel/tags +${I}
!
done
}