eza/man/eza_colors-explanation.5.md
2024-09-29 05:22:49 +02:00

4.9 KiB

% eza_colors-explanation(5) $version

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