diff options
| author | Craig Jennings <c@cjennings.net> | 2025-05-21 22:01:35 -0500 | 
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2025-05-21 22:01:35 -0500 | 
| commit | b4463015b97912658d630377fafbf630f7588d1e (patch) | |
| tree | d04b66d992fe2ce88391889c21c5d8dc97acd0ef /dotfiles/system/.zsh/lib/-ftb-generate-header | |
| parent | 548154ea395356868e87980b149dfc0abdc84e17 (diff) | |
moving arch dotfiles into archsetup
Diffstat (limited to 'dotfiles/system/.zsh/lib/-ftb-generate-header')
| -rw-r--r-- | dotfiles/system/.zsh/lib/-ftb-generate-header | 35 | 
1 files changed, 35 insertions, 0 deletions
| diff --git a/dotfiles/system/.zsh/lib/-ftb-generate-header b/dotfiles/system/.zsh/lib/-ftb-generate-header new file mode 100644 index 0000000..a54fee1 --- /dev/null +++ b/dotfiles/system/.zsh/lib/-ftb-generate-header @@ -0,0 +1,35 @@ +#!/hint/zsh + +typeset -ga _ftb_headers=() +local i tmp group_colors +local -i mlen=0 len=0 + +if (( $#_ftb_groups == 1 )) && { ! -ftb-zstyle -m single-group "header" }; then +  return +fi + +# calculate the max column width +for i in $_ftb_groups; do +  (( $#i > mlen )) && mlen=$#i +done +mlen+=1 + +-ftb-zstyle -a group-colors group_colors || group_colors=($_ftb_group_colors) + +for (( i=1; i<=$#_ftb_groups; i++ )); do +  [[ $_ftb_groups[i] == "__hide__"* ]] && continue + +  if (( len + $#_ftb_groups[i] > COLUMNS - 5 )); then +    _ftb_headers+=$tmp +    tmp='' && len=0 +  fi +  if (( len + mlen > COLUMNS - 5 )); then +    # the last column doesn't need padding +    _ftb_headers+=$tmp$group_colors[i]$_ftb_groups[i]$'\033[00m' +    tmp='' && len=0 +  else +    tmp+=$group_colors[i]${(r:$mlen:)_ftb_groups[i]}$'\033[00m' +    len+=$mlen +  fi +done +(( $#tmp )) && _ftb_headers+=$tmp | 
