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 dimmed default foreground color.
- •
- 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.