#! /bin/bash # source $(dirname $0)/panel_colors source $(dirname $0)/panel_icons num_mon=$(bspc query -M | wc -l) while read -r line ; do case $line in S*) #sys="%{F$COLOR_SYS_FG}%{B$COLOR_SYS_BG} ${line#?} %{B-}%{F-}" sysR="${line#?}" ;; T*) #title="%{F$COLOR_TITLE_FG}%{B$COLOR_TITLE_BG} ${line#?} %{B-}%{F-}" sysL="${line#?}" ;; W*) # bspwm's state wm="" IFS=':' set -- ${line#?} while [ $# -gt 0 ] ; do item=$1 name=${item#?} case $item in [mM]*) [ $num_mon -lt 2 ] && shift && continue case $item in m*) # monitor FG=$COLOR_MONITOR_FG BG=$COLOR_DEFAULT_BG ;; M*) # focused monitor FG=$COLOR_FOCUSED_MONITOR_FG BG=$COLOR_DEFAULT_BG ;; esac wm="${wm}%{F${FG}}%{B${BG}}%{A:bspc monitor -f ${name}:} ${name} %{A}%{B-}%{F-}" ;; [fFoOuU]*) case $item in f*) # free desktop FG=$COLOR_FREE_FG IC=${CNONE} BG=$COLOR_DEFAULT_BG ;; F*) # focused free desktop FG=$COLOR_FOCUSED_FREE_FG IC=${CNONE} BG=$COLOR_DEFAULT_BG ;; o*) # occupied desktop FG=$COLOR_OCCUPIED_FG IC=${CFULL} BG=$COLOR_DEFAULT_BG ;; O*) # focused occupied desktop FG=$COLOR_FOCUSED_OCCUPIED_FG IC=${CFULL} BG=$COLOR_DEFAULT_BG ;; u*) # urgent desktop FG=$COLOR_URGENT_FG IC=${CNONE} BG=$COLOR_DEFAULT_BG ;; U*) # focused urgent desktop FG=$COLOR_FOCUSED_URGENT_FG IC=${CFULL} BG=$COLOR_DEFAULT_BG ;; esac wm="${wm}%{F${FG}}%{B${BG}}%{A:bspc desktop -f ${name}:} $(printf '%b' $IC) %{A}%{B-}%{F-}" ;; [LTG]*) # layout, state and flags #wm="${wm}%{F$COLOR_STATE_FG}%{B$COLOR_STATE_BG} ${name} %{B-}%{F-}" wm="${wm}%{F$COLOR_STATE_FG}%{B$COLOR_STATE_BG} %{B-}%{F-}" ;; esac shift done ;; esac printf "%s\n" "%{l}${sysL}%{c}${wm}%{r}${sysR}" done