#!/bin/sh # env # Written in 2019-2020 by Lucas # CC0 1.0 Universal/Public domain - No rights reserved # # To the extent possible under law, the author(s) have dedicated all # copyright and related and neighboring rights to this software to the # public domain worldwide. This software is distributed without any # warranty. You should have received a copy of the CC0 Public Domain # Dedication along with this software. If not, see # . if [ -f ~/.config/herbstluftwm/theme ]; then . ~/.config/herbstluftwm/theme fi bar_geometry() { herbstclient monitor_rect "$m" | { read -r mx my mw mh printf "%ux%u+%u+%u\n" "$mw" "$hlwm_font_height" "$mx" "$my" } } show_tags() { mon=$1 herbstclient tag_status "$mon" | tr "\t" "\n" | { focused=$(herbstclient attr tags.focus.name) s= while IFS= read -r line; do [ -n "$line" ] || continue tag=${line#[.:+#%!-]} case $line in !*) [ "$tag" != "$focused" ] && s=$s" $line" ;; esac done printf "%%{l} %s%%{F%s}%s%%{F-}\n" \ "$focused" "$hlwm_color9" "$s" } } tags_status() { mon=$1 show_tags "$mon" herbstclient -i "tag_(changed|flags)" | while read -r discard; do show_tags "$mon" done } if [ $# -ne 1 ]; then printf "Usage: %s monitor\n" "${0##*/}" >&2 exit 1 fi geometry=$(bar_geometry "$m") left= center= right= { tags_status "$m" & spoon -t & } | while IFS= read line; do case $line in "%{l}"*) left=$line ;; "%{c}"*) center=$line ;; "%{r}"*) right=$line ;; esac printf "%s%s%s\n" "$left" "$center" "$right" done | lemonbar-xft -b -g "$geometry" \ -B "$hlwm_background" -F "$hlwm_foreground" -f "$hlwm_face" & herbstclient -w reload kill 0