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 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.

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_execute_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

$version