Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /bin/sh
- # based on default example from bspwm github
- PANEL_FIFO=/tmp/panel-fifo
- PANEL_HEIGHT=24
- PANEL_WM_NAME=bspwm_panel
- PANEL_FONT="-lucy-tewi-medium-r-normal-*-11-90-100-100-c-60-iso10646-1"
- COLOR_DEFAULT_FG="#dee3e0"
- COLOR_DEFAULT_BG="#343c48"
- COLOR_MONITOR_FG="#dee3e0"
- COLOR_MONITOR_BG="#343c48"
- COLOR_FOCUSED_MONITOR_FG="#dee3e0"
- COLOR_FOCUSED_MONITOR_BG="#528588"
- COLOR_FREE_FG="#737171"
- COLOR_FREE_BG="#343c48"
- COLOR_FOCUSED_FREE_FG="#dee3e0"
- COLOR_FOCUSED_FREE_BG="#528588"
- COLOR_OCCUPIED_FG="#dee3e0"
- COLOR_OCCUPIED_BG="#343c48"
- COLOR_FOCUSED_OCCUPIED_FG="#dee3e0"
- COLOR_FOCUSED_OCCUPIED_BG="#528588"
- COLOR_URGENT_FG="#dee3e0"
- COLOR_URGENT_BG="#ba5e57"
- COLOR_FOCUSED_URGENT_FG="#b48ead"
- COLOR_FOCUSED_URGENT_BG="#ba5e57"
- COLOR_STATE_FG="#343c48"
- COLOR_STATE_BG="#343c48"
- COLOR_SYS_FG="#dee3e0"
- COLOR_SYS_BG="#ba5e57"
- trap 'trap - TERM; kill 0' INT TERM QUIT EXIT
- [ -e "$PANEL_FIFO" ] && rm "$PANEL_FIFO"
- mkfifo "$PANEL_FIFO"
- clock() {
- while true; do
- date +"S%a %b %-d, %H:%M"
- sleep 15
- done
- }
- clock > "$PANEL_FIFO" &
- xtitle -sf 'T%s\n' > "$PANEL_FIFO" &
- bspc subscribe report > "$PANEL_FIFO" &
- num_mon=$(bspc query -M | wc -l)
- panel_bar() {
- while read -r line ; do
- case $line in
- S*)
- # clock output
- sys="%{F$COLOR_SYS_FG}%{B$COLOR_SYS_BG} ${line#?} %{B-}%{F-}"
- ;;
- T*)
- # xtitle output
- title="%{F$COLOR_TITLE_FG}%{B$COLOR_TITLE_BG} ${line#?} %{B-}%{F-}"
- ;;
- W*)
- # bspwm's state
- wm=
- IFS=':'
- set -- ${line#?}
- while [ $# -gt 0 ] ; do
- item=$1
- name=${item#?}
- case $item in
- [mM]*)
- case $item in
- m*)
- # monitor
- FG=$COLOR_MONITOR_FG
- BG=$COLOR_MONITOR_BG
- on_focused_monitor=
- ;;
- M*)
- # focused monitor
- FG=$COLOR_FOCUSED_MONITOR_FG
- BG=$COLOR_FOCUSED_MONITOR_BG
- on_focused_monitor=1
- ;;
- esac
- [ $num_mon -lt 2 ] && shift && continue
- 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
- BG=$COLOR_FREE_BG
- UL=$BG
- ;;
- F*)
- if [ "$on_focused_monitor" ] ; then
- # focused free desktop
- FG=$COLOR_FOCUSED_FREE_FG
- BG=$COLOR_FOCUSED_FREE_BG
- UL=$BG
- else
- # active free desktop
- FG=$COLOR_FREE_FG
- BG=$COLOR_FREE_BG
- UL=$COLOR_FOCUSED_FREE_BG
- fi
- ;;
- o*)
- # occupied desktop
- FG=$COLOR_OCCUPIED_FG
- BG=$COLOR_OCCUPIED_BG
- UL=$BG
- ;;
- O*)
- if [ "$on_focused_monitor" ] ; then
- # focused occupied desktop
- FG=$COLOR_FOCUSED_OCCUPIED_FG
- BG=$COLOR_FOCUSED_OCCUPIED_BG
- UL=$BG
- else
- # active occupied desktop
- FG=$COLOR_OCCUPIED_FG
- BG=$COLOR_OCCUPIED_BG
- UL=$COLOR_FOCUSED_OCCUPIED_BG
- fi
- ;;
- u*)
- # urgent desktop
- FG=$COLOR_URGENT_FG
- BG=$COLOR_URGENT_BG
- UL=$BG
- ;;
- U*)
- if [ "$on_focused_monitor" ] ; then
- # focused urgent desktop
- FG=$COLOR_FOCUSED_URGENT_FG
- BG=$COLOR_FOCUSED_URGENT_BG
- UL=$BG
- else
- # active urgent desktop
- FG=$COLOR_URGENT_FG
- BG=$COLOR_URGENT_BG
- UL=$COLOR_FOCUSED_URGENT_BG
- fi
- ;;
- esac
- wm="${wm}%{F${FG}}%{B${BG}}%{U${UL}}%{+u}%{A:bspc desktop -f ${name}:} ${name} %{A}%{B-}%{F-}%{-u}"
- ;;
- [LTG]*)
- # layout, state and flags
- wm="${wm}%{F$COLOR_STATE_FG}%{B$COLOR_STATE_BG} ${name} %{B-}%{F-}"
- ;;
- esac
- shift
- done
- ;;
- esac
- printf "%s\n" "%{l}${wm}%{c}${title}%{r}${sys}"
- done
- }
- panel_bar < "$PANEL_FIFO" | lemonbar -a 12 -u 2 -g 1066x$PANEL_HEIGHT+150+6 -f "$PANEL_FONT" -F "$COLOR_DEFAULT_FG" -B "$COLOR_DEFAULT_BG" -n "$PANEL_WM_NAME" | sh &
- wid=$(xdo id -a "$PANEL_WM_NAME")
- xdo above -t "$(xdo id -N Bspwm -n root | sort | head -n 1)" "$wid"
- wait
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement