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-colorize | |
| parent | 548154ea395356868e87980b149dfc0abdc84e17 (diff) | |
moving arch dotfiles into archsetup
Diffstat (limited to 'dotfiles/system/.zsh/lib/-ftb-colorize')
| -rw-r--r-- | dotfiles/system/.zsh/lib/-ftb-colorize | 34 | 
1 files changed, 34 insertions, 0 deletions
| diff --git a/dotfiles/system/.zsh/lib/-ftb-colorize b/dotfiles/system/.zsh/lib/-ftb-colorize new file mode 100644 index 0000000..3b1909b --- /dev/null +++ b/dotfiles/system/.zsh/lib/-ftb-colorize @@ -0,0 +1,34 @@ +#!/hint/zsh +emulate -L zsh -o cbases -o octalzeroes + +local REPLY +local -a reply stat lstat + +# fzf-tab-lscolors::match-by $1 lstat follow +zstat -A lstat -L -- $1 +# follow symlink +(( lstat[3] & 0170000 )) && zstat -A stat -- $1 2>/dev/null + +fzf-tab-lscolors::from-mode "$1" "$lstat[3]" $stat[3] +# fall back to name +[[ -z $REPLY ]] && fzf-tab-lscolors::from-name $1 + +# If this is a symlink +if [[ -n $lstat[14] ]]; then +  local sym_color=$REPLY +  local rsv_color=$REPLY +  local rsv=$lstat[14] +  # If this is not a broken symlink +  if [[ -e $rsv ]]; then +    # fzf-tab-lscolors::match-by $rsv stat +    zstat -A stat -- $rsv +    fzf-tab-lscolors::from-mode $rsv $stat[3] +    # fall back to name +    [[ -z $REPLY ]] && fzf-tab-lscolors::from-name $rsv +    rsv_color=$REPLY +  fi +  dpre=$'\033[0m\033['$sym_color'm' +  dsuf+=$'\033[0m -> \033['$rsv_color'm'$rsv +else +  dpre=$'\033[0m\033['$REPLY'm' +fi | 
