eza_colors-explanation(5) eza_colors-explanation(5)

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.

eza(1)
eza_colors(5)
$version