#!/bin/sh puts () { printf %s "$1" } escape () { printf %s "$1" | sed -e 's*\\*\\\\*g' -e 's!"!\\"!g' } block_basic () { printf '{"full_text":"%s"},' "$1" } block_color () { printf '{"full_text":"%s","color":"%s"},' "$1" "$2" } BDIR=/sys/class/power_supply/BAT0 # header printf '%s\n' '{"version":1}' puts '[' while true; do puts '[' volinfo="$(amixer get Master | grep 'Front Left:')" vol_level="$(printf %s "$volinfo" | awk -F'[][]' '{print $2}')" vol_enabled="$(printf %s "$volinfo" | awk -F'[][]' '{print $4}')" color="#ffffff"; bl=""; br="" [ "$vol_enabled" = "off" ] && { color="#ffff00"; bl="("; br=")"; } block_color "vol $bl$vol_level$br" "$color" bat_status="$(cat $BDIR/status | tr 'a-z' 'A-Z' | head -c 3)" bat_level="$(cat $BDIR/capacity)" color="#ffffff" if [ "$bat_status" != "CHA" ]; then if [ "$bat_level" -le 10 ]; then color="#ff0000" elif [ "$bat_level" -le 25 ]; then color="#ffff00" fi fi block_color "$bat_status $bat_level%" "$color" date="$(date +'%G-W%V-%u %a %Y-%m-%d %H:%M:%S')" block_basic "$date" puts '],' sleep 1 done