diff --git a/k.sh b/k.sh index e7dc9fb..de67db2 100644 --- a/k.sh +++ b/k.sh @@ -125,11 +125,6 @@ k () { K_COLOR_OW=$(_k_bsd_to_ansi $LSCOLORS[21] $LSCOLORS[22]) fi - # read colors if linux and $LS_COLORS is defined - # if [[ $(uname) == 'Linux' && -n $LS_COLORS ]]; then - - # fi - # ---------------------------------------------------------------------------- # Loop over passed directories and files to display # ---------------------------------------------------------------------------- @@ -476,6 +471,7 @@ k () { # But we don't want to quote '.'; so instead we escape the escape manually and use q- NAME="${${NAME##*/}//$'\e'/\\e}" # also propagate changes to SYMLINK_TARGET below + # We are using an ls that supports using colors from $LS_COLORS (probably GNU ls here) if [[ $IS_DIRECTORY == 1 ]]; then if [[ $IS_WRITABLE_BY_OTHERS == 1 ]]; then if [[ $HAS_STICKY_BIT == 1 ]]; then @@ -484,6 +480,8 @@ k () { NAME=$'\e['"$K_COLOR_OW"'m'"$NAME"$'\e[0m'; fi NAME=$'\e['"$K_COLOR_DI"'m'"$NAME"$'\e[0m'; + elif [[ "$LS_COLORS" ]] && ls --color -d . &>/dev/null; then + NAME="$(ls --color=always "${base_dir:=.}/$NAME")" elif [[ $IS_SYMLINK == 1 ]]; then NAME=$'\e['"$K_COLOR_LN"'m'"$NAME"$'\e[0m'; elif [[ $IS_SOCKET == 1 ]]; then NAME=$'\e['"$K_COLOR_SO"'m'"$NAME"$'\e[0m'; elif [[ $IS_PIPE == 1 ]]; then NAME=$'\e['"$K_COLOR_PI"'m'"$NAME"$'\e[0m';