mirror of
https://gitlab.com/dwt1/dotfiles.git
synced 2023-02-13 20:55:19 -05:00
75 lines
2 KiB
Bash
Executable file
75 lines
2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Panel for herbstluftwm using dzen2
|
|
|
|
## dzen stuff
|
|
FG='#CCCCCC'
|
|
BG='#333333'
|
|
FONT="-*-fixed-medium-*-*-*-12-*-*-*-*-*-*-*"
|
|
|
|
monitor=$@
|
|
|
|
rect="$(herbstclient monitor_rect $monitor)"
|
|
xoff=$(echo $rect | awk '{print $1}')
|
|
yoff=0
|
|
width=$(echo $rect | awk '{print $3}')
|
|
height=$(echo $rect | awk '{print $2}')
|
|
|
|
function uniq_linebuffered() {
|
|
awk '$0 != l { print ; l=$0 ; fflush(); }' "$@"
|
|
}
|
|
|
|
{
|
|
conky -c ~/.config/herbstluftwm/statusbar | while read -r; do
|
|
echo -e "conky $REPLY";
|
|
|
|
done > >(uniq_linebuffered) &
|
|
childpid=$!
|
|
herbstclient --idle
|
|
kill $childpid
|
|
} | {
|
|
TAGS=( $(herbstclient tag_status $monitor) )
|
|
conky=""
|
|
separator="^fg(#002B36)^ro(1x16)^fg()"
|
|
while true; do
|
|
for i in "${TAGS[@]}"; do
|
|
echo -n "^ca(1,herbstclient use ${i:1}) "
|
|
case ${i:0:1} in
|
|
'#')
|
|
echo -n "^fg(#2290B5)[^fg(#FFCC30)${i:1}^fg(#2290B5)]"
|
|
;;
|
|
'%')
|
|
echo -n "^fg(#2290B5)(^fg(#FFCC30)${i:1}^fg(#2290B5))"
|
|
;;
|
|
'+')
|
|
echo -n "^fg(#2290B5)[^fg(#CCCCCC)${i:1}^fg(#2290B5)]"
|
|
;;
|
|
'-')
|
|
echo -n "^fg(#2290B5)(^fg(#CCCCCC)${i:1}^fg(#2290B5))"
|
|
;;
|
|
':')
|
|
echo -n "^fg(#CCCCCC) ${i:1} "
|
|
;;
|
|
*)
|
|
echo -n "^fg(#2290B5) ${i:1} "
|
|
;;
|
|
esac
|
|
echo -n "^ca()"
|
|
done
|
|
echo -n " $separator"
|
|
conky_text_only=$(echo -n "$conky "|sed 's.\^[^(]*([^)]*)..g')
|
|
width=$(textwidth "$FONT" "$conky_text_only ")
|
|
echo -n "^p(_RIGHT)^p(-$width)$conky"
|
|
echo
|
|
read line || break
|
|
cmd=( $line )
|
|
case "$cmd[0]" in
|
|
tag*)
|
|
TAGS=( $(herbstclient tag_status $monitor) )
|
|
;;
|
|
conky*)
|
|
conky="${cmd[@]:1}"
|
|
;;
|
|
esac
|
|
done
|
|
} 2> /dev/null |dzen2 -ta l -y $yoff -x $xoff -h $height -w $width -fg $FG -bg $BG -fn $FONT &
|