% eza_colors-explanation(5) $version
eza_colors-explanation — more details on customizing eza colors
eza provides its own built-in set of file extension mappings that cover a large range of common file extensions, including documents, archives, media, and temporary files.
Any mappings in the environment variables will override this default set: running eza with LS_COLORS="*.zip=32"
will turn zip files green but leave the colours of other compressed files alone.
You can also disable this built-in set entirely by including a
reset
entry at the beginning of EZA_COLORS
.
So setting EZA_COLORS="reset:*.txt=31"
will highlight only text
files; setting EZA_COLORS="reset"
will highlight nothing.
- Disable the "current user" highlighting:
EZA_COLORS="uu=0:gu=0"
- Turn the date column green:
EZA_COLORS="da=32"
- Highlight Vagrantfiles:
EZA_COLORS="Vagrantfile=1;4;33"
- Override the existing zip colour:
EZA_COLORS="*.zip=38;5;125"
- Markdown files a shade of green, log files a shade of grey:
EZA_COLORS="*.md=38;5;121:*.log=38;5;248"
-
eza now supports bright colours! As supported by most modern 256-colour terminals, you can now choose from
bright
colour codes when selecting your custom colours in your#EZA_COLORS
environment variable. -
Build (Makefile, Cargo.toml, package.json) are yellow and underlined.
-
Images (png, jpeg, gif) are purple.
-
Videos (mp4, ogv, m2ts) are a slightly purpler purple.
-
Music (mp3, m4a, ogg) is a faint blue.
-
Lossless music (flac, alac, wav) is a less faint blue.
-
Cryptographic files (asc, enc, p12) are bright green.
-
Documents (pdf, doc, dvi) are a fainter green.
-
Compressed files (zip, tgz, Z) are red.
-
Temporary files (tmp, swp, ~) are grey.
-
Compiled files (class, o, pyc) are yellow. A file is also counted as compiled if it uses a common extension and is in the same directory as one of its source files: styles.css will count as compiled when next to styles.less or styles.sass, and scripts.js when next to scripts.ts or scripts.coffee.
-
Source files (cpp, js, java) are bright yellow.
Now you can specify these options and more in a theme.yml
file with convenient syntax for defining your styles.
Set EZA_CONFIG_DIR
to specify which directory you would like eza to look for your theme.yml
file,
otherwise eza will look for $XDG_CONFIG_HOME/eza/theme.yml
.
These are the available options:
filekinds:
normal
directory
symlink
pipe
block_device
char_device
socket
special
executable
mount_point
perms:
user_read
user_write
user_executable_file
user_execute_other
group_read
group_write
group_execute
other_read
other_write
other_execute
special_user_file
special_other
attribute
size:
major
minor
number_byte
number_kilo
number_mega
number_giga
number_huge
unit_byte
unit_kilo
unit_mega
unit_giga
unit_huge
users:
user_you
user_root
user_other
group_yours
group_other
group_root
links:
normal
multi_link_file
git:
new
modified
deleted
renamed
ignored
conflicted
git_repo:
branch_main
branch_other
git_clean
git_dirty
security_context:
none:
selinux:
colon
user
role
typ
range
file_type:
image
video
music
crypto
document
compressed
temp
compiled
build
source
punctuation:
date:
inode:
blocks:
header:
octal:
flags:
control_char:
broken_symlink:
broken_path_overlay:
Each of those fields/sub fields can have the following styling properties defined beneath it
foreground: Blue
background: null
is_bold: false
is_dimmed: false
is_italic: false
is_underline: false
is_blink: false
is_reverse: false
is_hidden: false
is_strikethrough: true
prefix_with_reset: false
Example:
file_type:
image:
foreground: Blue
is_italic: true
date:
foreground: White
security_context:
selinux:
role:
is_hidden: true
Icons can now be customized as well in the filenames
and extensions
fields
filenames:
# Just change the icon glyph
Cargo.toml: {icon: {glyph: 🦀}}
Cargo.lock: {icon: {glyph: 🦀}}
extensions:
rs: { filename: {foreground: Red}, icon: {glyph: 🦀}}
NOTES:
Not all glyphs support changing colors.
If your theme is not working properly, double check the syntax in the config file, as a syntax issue can cause multiple properties to not be applied.
You must name the file theme.yml
, no matter the directory you specify.