Subject: bug#43615: 26.3; eshell: face for directory and symlink the same in terminal

From: [email-masked] (Alfred M. Szmidt)
Date: Sat, 26 Sep 2020 04:33:00 -0400

>   black		       black  #000000
   >   red		       red  #ff0000
   >   green		       green  #00ff00
   >   yellow		       yellow  #ffff00
   >   blue		       blue  #0000ff
   >   magenta		       magenta  #ff00ff
   >   cyan		       cyan  #00ffff
   >   white		       white  #ffffff

   This indicates you have only 8 colors, not 16.

I based the 16 colors on the documentation for the console; it might
be that there is some switch one can flip for more.

   > I'd think that magenta would make most sense, but that would require
   > changing what is used for eshell-ls-archive?

   Doing TRT with just 8 colors is a tough nut, since there are 11
   file types for which Eshell uses colors.  Maybe colors should be
   disabled for such terminals?  Or maybe some faces should have no
   color definitions for 8-color terminals, leaving only the most
   frequent and important files shown in color?

I think the later would make most sense.  What would a good criteria
be for frequet/important?  In my mind, I'd like to know first and for
most if a file is a plain file, directory, symlink or special.  Then,
if it is executable -- to know if ./foo will work.

After that, I think it is mostly nice things, being able to know if a
file is missing, unreadable, or readonly is useful information since
that means you know what happens if you open the file.

This is slightly different thant for archives, since Emacs will switch
to whatever mode the file suffix is anyway for any file, and archives
aren't "that" special.

Lastly, not showing backup/junk/product files in a highly contrasted
color.

Does that make sense?  That would make the list of faces for 8 color
(though this would require to modify the scheme slightly):

  plain
  directory
  symlink
  special
  executable
  readonly / unreadable/ missing
  backup / product / clutter

So maybe just limit it to the plain / directory / symlink / special /
executable group?