@ -4,6 +4,8 @@ autoload -U colors && colors
# Enable ls colors
# Enable ls colors
export LSCOLORS = "Gxfxcxdxbxegedabagacad"
export LSCOLORS = "Gxfxcxdxbxegedabagacad"
# TODO organise this chaotic logic
if [ [ " $DISABLE_LS_COLORS " != "true" ] ] ; then
if [ [ " $DISABLE_LS_COLORS " != "true" ] ] ; then
# Find the option for using colors in ls, depending on the version
# Find the option for using colors in ls, depending on the version
if [ [ " $OSTYPE " = = netbsd* ] ] ; then
if [ [ " $OSTYPE " = = netbsd* ] ] ; then
@ -18,7 +20,12 @@ if [[ "$DISABLE_LS_COLORS" != "true" ]]; then
gls --color -d . & >/dev/null && alias ls = 'gls --color=tty'
gls --color -d . & >/dev/null && alias ls = 'gls --color=tty'
colorls -G -d . & >/dev/null && alias ls = 'colorls -G'
colorls -G -d . & >/dev/null && alias ls = 'colorls -G'
elif [ [ " $OSTYPE " = = darwin* ] ] ; then
elif [ [ " $OSTYPE " = = darwin* ] ] ; then
gls --color -d . & >/dev/null && alias ls = 'gls --color=tty' || alias ls = 'ls -G'
# this is a good alias, it works by default just using $LSCOLORS
alias ls = 'ls -G'
# only use coreutils ls if there is a dircolors customization present ($LS_COLORS or .dircolors file)
# otherwise, gls will use the default color scheme which is ugly af
[ [ -n " $LS_COLORS " || -f " $HOME /.dircolors " ] ] && gls --color -d . & >/dev/null && alias ls = 'gls --color=tty'
else
else
# For GNU ls, we use the default ls color theme. They can later be overwritten by themes.
# For GNU ls, we use the default ls color theme. They can later be overwritten by themes.
if [ [ -z " $LS_COLORS " ] ] ; then
if [ [ -z " $LS_COLORS " ] ] ; then