Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
oh-my-zsh
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
github
oh-my-zsh
Commits
8a68bf67
Unverified
Commit
8a68bf67
authored
Feb 16, 2023
by
Carlo Sala
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix(theme-and-appearance): test color ls with $ZSH directory
Fixes #11500
parent
574669da
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
11 additions
and
6 deletions
+11
-6
theme-and-appearance.zsh
lib/theme-and-appearance.zsh
+11
-6
No files found.
lib/theme-and-appearance.zsh
View file @
8a68bf67
...
...
@@ -7,32 +7,37 @@ export LSCOLORS="Gxfxcxdxbxegedabagacad"
# TODO organise this chaotic logic
if
[[
"
$DISABLE_LS_COLORS
"
!=
"true"
]]
;
then
if
[[
-d
"
$ZSH
"
]]
;
then
_test_dir
=
"
$ZSH
"
else
_test_dir
=
"."
fi
# Find the option for using colors in ls, depending on the version
if
[[
"
$OSTYPE
"
==
netbsd
*
]]
;
then
# On NetBSD, test if "gls" (GNU ls) is installed (this one supports colors);
# otherwise, leave ls as is, because NetBSD's ls doesn't support -G
gls
--color
-d
.
&>/dev/null
&&
alias ls
=
'gls --color=tty'
gls
--color
-d
"
$_test_dir
"
&>/dev/null
&&
alias ls
=
'gls --color=tty'
elif
[[
"
$OSTYPE
"
==
openbsd
*
]]
;
then
# 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
# coreutils, so prefer it to "gls".
gls
--color
-d
.
&>/dev/null
&&
alias ls
=
'gls --color=tty'
colorls
-G
-d
.
&>/dev/null
&&
alias ls
=
'colorls -G'
gls
--color
-d
"
$_test_dir
"
&>/dev/null
&&
alias ls
=
'gls --color=tty'
colorls
-G
-d
"
$_test_dir
"
&>/dev/null
&&
alias ls
=
'colorls -G'
elif
[[
"
$OSTYPE
"
==
(
darwin|freebsd
)
*
]]
;
then
# this is a good alias, it works by default just using $LSCOLORS
ls
-G
.
&>/dev/null
&&
alias ls
=
'ls -G'
ls
-G
"
$_test_dir
"
&>/dev/null
&&
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'
[[
-n
"
$LS_COLORS
"
||
-f
"
$HOME
/.dircolors"
]]
&&
gls
--color
-d
"
$_test_dir
"
&>/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
((
$+
commands[dircolors]
))
&&
eval
"
$(
dircolors
-b
)
"
fi
ls
--color
-d
.
&>/dev/null
&&
alias ls
=
'ls --color=tty'
||
{
ls
-G
.
&>/dev/null
&&
alias ls
=
'ls -G'
}
ls
--color
-d
"
$_test_dir
"
&>/dev/null
&&
alias ls
=
'ls --color=tty'
||
{
ls
-G
"
$_test_dir
"
&>/dev/null
&&
alias ls
=
'ls -G'
}
# Take advantage of $LS_COLORS for completion as well.
zstyle
':completion:*'
list-colors
"
${
(s.
:.
)LS_COLORS
}
"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment