summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Cornellà <marc.cornella@live.com>2016-11-02 15:39:28 +0100
committerGitHub <noreply@github.com>2016-11-02 15:39:28 +0100
commit1b799e9762067f912c0eb807cd5a55d8f122adfd (patch)
tree79397c366e4b35eedc08078805a17086e059bc34
parent73591101b6db1e67ad3a0c2f90c81bc8174f4056 (diff)
downloadzsh-1b799e9762067f912c0eb807cd5a55d8f122adfd.tar.gz
zsh-1b799e9762067f912c0eb807cd5a55d8f122adfd.tar.bz2
zsh-1b799e9762067f912c0eb807cd5a55d8f122adfd.zip
Check dircolors settings before using gls on darwin (#5570)
`gls` seems to be installed by default or on most macOS systems, but its default color scheme sucks. This fix will make sure to only use it if it has been customised prior to running OMZ. Related: #5516, #5520.
-rw-r--r--lib/theme-and-appearance.zsh9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/theme-and-appearance.zsh b/lib/theme-and-appearance.zsh
index 467b770d6..122e3fecb 100644
--- a/lib/theme-and-appearance.zsh
+++ b/lib/theme-and-appearance.zsh
@@ -4,6 +4,8 @@ autoload -U colors && colors
# Enable ls colors
export LSCOLORS="Gxfxcxdxbxegedabagacad"
+# TODO organise this chaotic logic
+
if [[ "$DISABLE_LS_COLORS" != "true" ]]; then
# Find the option for using colors in ls, depending on the version
if [[ "$OSTYPE" == netbsd* ]]; then
@@ -18,7 +20,12 @@ if [[ "$DISABLE_LS_COLORS" != "true" ]]; then
gls --color -d . &>/dev/null && alias ls='gls --color=tty'
colorls -G -d . &>/dev/null && alias ls='colorls -G'
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
# For GNU ls, we use the default ls color theme. They can later be overwritten by themes.
if [[ -z "$LS_COLORS" ]]; then