Scroll to navigation

eza_colors-explanation(5) File Formats Manual eza_colors-explanation(5)

Name

eza_colors-explanation — more details on customizing eza colors

Eza Color Explanation

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.

Examples

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"

BUILT-IN EXTENSIONS

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.

Theme Configuration file

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:

LIST OF THEME 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.

See also

eza(1)
eza_colors(5)
$version