2009-11-06 03:44:28 +08:00
|
|
|
# ls colors
|
2015-02-10 03:43:48 +08:00
|
|
|
autoload -U colors && colors
|
2009-11-06 03:44:28 +08:00
|
|
|
|
|
|
|
# Enable ls colors
|
2016-10-04 07:24:48 +08:00
|
|
|
export LSCOLORS="Gxfxcxdxbxegedabagacad"
|
|
|
|
|
2016-11-02 22:39:28 +08:00
|
|
|
# TODO organise this chaotic logic
|
|
|
|
|
2016-10-04 07:24:48 +08:00
|
|
|
if [[ "$DISABLE_LS_COLORS" != "true" ]]; then
|
|
|
|
# Find the option for using colors in ls, depending on the version
|
2016-10-11 15:24:43 +08:00
|
|
|
if [[ "$OSTYPE" == netbsd* ]]; then
|
2015-02-10 03:43:48 +08:00
|
|
|
# On NetBSD, test if "gls" (GNU ls) is installed (this one supports colors);
|
2013-01-03 20:44:17 +08:00
|
|
|
# otherwise, leave ls as is, because NetBSD's ls doesn't support -G
|
2016-10-04 07:24:48 +08:00
|
|
|
gls --color -d . &>/dev/null && alias ls='gls --color=tty'
|
2016-10-11 04:24:30 +08:00
|
|
|
elif [[ "$OSTYPE" == openbsd* ]]; then
|
2016-05-12 19:23:46 +08:00
|
|
|
# On OpenBSD, "gls" (ls from GNU coreutils) and "colorls" (ls from base,
|
|
|
|
# with color and multibyte support) are available from ports. "colorls"
|
|
|
|
# will be installed on purpose and can't be pulled in by installing
|
2014-04-25 20:15:14 +08:00
|
|
|
# coreutils, so prefer it to "gls".
|
2016-10-04 07:24:48 +08:00
|
|
|
gls --color -d . &>/dev/null && alias ls='gls --color=tty'
|
|
|
|
colorls -G -d . &>/dev/null && alias ls='colorls -G'
|
2019-04-22 22:24:48 +08:00
|
|
|
elif [[ "$OSTYPE" == (darwin|freebsd)* ]]; then
|
2016-11-02 22:39:28 +08:00
|
|
|
# this is a good alias, it works by default just using $LSCOLORS
|
2016-04-11 00:20:59 +08:00
|
|
|
ls -G . &>/dev/null && alias ls='ls -G'
|
2016-11-02 22:39:28 +08:00
|
|
|
|
|
|
|
# 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'
|
2012-12-31 20:02:22 +08:00
|
|
|
else
|
2016-10-03 10:15:57 +08:00
|
|
|
# For GNU ls, we use the default ls color theme. They can later be overwritten by themes.
|
2016-10-04 07:25:36 +08:00
|
|
|
if [[ -z "$LS_COLORS" ]]; then
|
|
|
|
(( $+commands[dircolors] )) && eval "$(dircolors -b)"
|
|
|
|
fi
|
2016-10-04 07:25:07 +08:00
|
|
|
|
2016-11-03 21:10:08 +08:00
|
|
|
ls --color -d . &>/dev/null && alias ls='ls --color=tty' || { ls -G . &>/dev/null && alias ls='ls -G' }
|
2016-10-11 02:40:17 +08:00
|
|
|
|
|
|
|
# Take advantage of $LS_COLORS for completion as well.
|
|
|
|
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
|
2012-12-31 20:02:22 +08:00
|
|
|
fi
|
2009-11-06 03:44:28 +08:00
|
|
|
fi
|
2009-11-05 03:37:18 +08:00
|
|
|
|
2020-07-02 02:51:13 +08:00
|
|
|
# enable diff color if possible.
|
2021-10-11 01:15:24 +08:00
|
|
|
if command diff --color /dev/null /dev/null &>/dev/null; then
|
2020-07-02 02:51:13 +08:00
|
|
|
alias diff='diff --color'
|
|
|
|
fi
|
|
|
|
|
2009-11-05 03:37:18 +08:00
|
|
|
setopt auto_cd
|
|
|
|
setopt multios
|
2016-10-04 07:24:48 +08:00
|
|
|
setopt prompt_subst
|
2009-11-05 03:37:18 +08:00
|
|
|
|
2016-10-04 07:24:48 +08:00
|
|
|
[[ -n "$WINDOW" ]] && SCREEN_NO="%B$WINDOW%b " || SCREEN_NO=""
|
2009-11-05 03:37:18 +08:00
|
|
|
|
|
|
|
# git theming default: Variables for theming the git info prompt
|
2009-11-06 03:44:28 +08:00
|
|
|
ZSH_THEME_GIT_PROMPT_PREFIX="git:(" # Prefix at the very beginning of the prompt, before the branch name
|
|
|
|
ZSH_THEME_GIT_PROMPT_SUFFIX=")" # At the very end of the prompt
|
|
|
|
ZSH_THEME_GIT_PROMPT_DIRTY="*" # Text to display if the branch is dirty
|
|
|
|
ZSH_THEME_GIT_PROMPT_CLEAN="" # Text to display if the branch is clean
|
2015-11-07 06:20:11 +08:00
|
|
|
ZSH_THEME_RUBY_PROMPT_PREFIX="("
|
|
|
|
ZSH_THEME_RUBY_PROMPT_SUFFIX=")"
|