#!/bin/dash

# prepend i3status with more stuff

kb_layout() {
    local layout
    local color
    layout=$(
        setxkbmap -query \
          | awk '/layout/{print $2}'
    )
    case $layout in
        us) color='' ;;
        *)  color=',"color": "#ff0000"' ;;
    esac
    printf '{"full_text": " %s"%s},' \
        "$layout" "$color"
}

bmo_be_ovw() {
    local ovw_path=.local/share/bmo/be/important.state
    local ovw
    local color
    test -s "$ovw_path" || return 0
    ovw=$(cat "$ovw_path")
    case $ovw in
        *%onbreak)  color=',"color": "#33aa55"' ;;
        *%mtg)      color=',"color": "#ff0000"' ;;
        *%working)  color=',"color": "#cccccc"' ;;
        *)          color='' ;;
    esac
    printf '{"full_text": " %s"%s},' \
        "$ovw" "$color"
}

i3status \
  | while true
    do
        read line
        case $line in
            '[{'*)  line="[$(kb_layout)$(bmo_be_ovw){${line#\[\{}" ;;
            ',[{'*) line=",[$(kb_layout)$(bmo_be_ovw){${line#,\[\{}" ;;
        esac
        echo "$line"
    done