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_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)