diff options
author | Dylan Araps <dylan.araps@gmail.com> | 2019-01-13 13:45:17 +0200 |
---|---|---|
committer | Dylan Araps <dylan.araps@gmail.com> | 2019-01-13 13:45:17 +0200 |
commit | c1691d082ae40194ec65f10db77b24da54512ec8 (patch) | |
tree | f4ac7704830f81624d9cff66efed20acba7093c9 | |
parent | b6cfad97c22887e9897ff492baeda2de61d468c8 (diff) |
support for LS_COLORS
-rwxr-xr-x | fff | 70 |
1 files changed, 32 insertions, 38 deletions
@@ -70,6 +70,13 @@ get_cursor_pos() { IFS='[;' read -sp $'\e[6n' -d R -rs _ y _ } +get_ls_colors() { + ls_cols="${LS_COLORS//\*./file_}" + ls_cols="${ls_cols//=/=\'}" + ls_cols="${ls_cols//:/\';}" + source <(printf '%s' "$ls_cols") +} + status_line() { # Status_line to print when files are marked for operation. local mark_ui="[${#marked_files[@]}] selected (${file_program[*]}) [p] ->" @@ -127,54 +134,38 @@ read_dir() { print_line() { # Format the list item and print it. - if [[ ${FFF_LS_COLORS:=on} == on ]]; then - local file_name="${list[$1]##*/}" - local file_ext="${file_name##*.}" + local file_name="${list[$1]##*/}" + # local file_ext="${file_name##*.}" - if [[ -d ${list[$1]} ]]; then - local ls_color="${LS_COLORS/*':di='}" - local format+="\\e[${ls_color/':'*}m" - local suffix+='/' + if [[ -d ${list[$1]} ]]; then + local format+="\\e[${di:-3${FFF_COL1:-2}}m" + local suffix+='/' - elif [[ -b ${list[$1]} ]]; then - local ls_color="${LS_COLORS/*':bd='}" - local format+="\\e[${LS_COLORS/*':'}m" + elif [[ -b ${list[$1]} ]]; then + local format+="\\e[${bd}m" - elif [[ -c ${list[$1]} ]]; then - local ls_color="${LS_COLORS/*':cd='}" - local format+="\\e[${LS_COLORS/*':'}m" + elif [[ -c ${list[$1]} ]]; then + local format+="\\e[${cd}m" - elif [[ -x ${list[$1]} ]]; then - local ls_color="${LS_COLORS/*':ex='}" - local format+="\\e[${LS_COLORS/*':'}m" + elif [[ -x ${list[$1]} ]]; then + local format+="\\e[${ex}m" - elif [[ -h ${list[$1]} ]]; then - local ls_color="${LS_COLORS/*':ln='}" - local format+="\\e[${LS_COLORS/*':'}m" + elif [[ -h ${list[$1]} ]]; then + local format+="\\e[${ln}m" - elif [[ -p ${list[$1]} ]]; then - local ls_color="${LS_COLORS/*':pi='}" - local format+="\\e[${LS_COLORS/*':'}m" + elif [[ -p ${list[$1]} ]]; then + local format+="\\e[${pi}m" - elif [[ -S ${list[$1]} ]]; then - local ls_color="${LS_COLORS/*':so='}" - local format+="\\e[${LS_COLORS/*':'}m" + elif [[ -S ${list[$1]} ]]; then + local format+="\\e[${so}m" - elif [[ $file_ext != "$file_name" && - $LS_COLORS == *."$file_ext"=* ]]; then - local ls_color="${LS_COLORS/*.${file_ext}=}" - local format+="\\e[${ls_color/:*}m" + # elif [[ $file_ext != "$file_name" && + # $LS_COLORS == *."$file_ext"=* ]]; then + # local ls_color="${LS_COLORS/*.${file_ext}=}" + # local format+="\\e[${ls_color/:*}m" - else - local ls_color="${LS_COLORS/*':fi='}" - local format+="\\e[${LS_COLORS/*':'}m" - fi else - - [[ -d ${list[$1]} ]] && { - local format+="\\e[1;3${FFF_COL1:-2}m" - local suffix+='/' - } + local format+="\\e[${fi:-37}m" fi # If the list item is under the cursor. @@ -619,6 +610,9 @@ main() { ((BASH_VERSINFO[0] > 3)) && read_flags=(-t 0.05) + ((${FFF_LS_COLORS:=1} == 1)) && + get_ls_colors + get_os get_term_size setup_terminal |