#!/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": "red"' ;; esac printf '{"full_text": " %s"%s}' \ "$layout" "$color" } i3status \ | while true do read line case $line in '[{'*) line="[$(kb_layout),{${line#\[\{}" ;; ',[{'*) line=",[$(kb_layout),{${line#,\[\{}" ;; esac echo "$line" done