GNU Emacs 28.1 has broken colors when opened in a screen session with the
COLORTERM environment variable set to COLORTERM=truecolor.

To reproduce:

1. Open a terminal that supports 24-bit color (e.g. GNOME Terminal)
2. Run export COLORTERM=truecolor (this is already set by default in many
terminal configs)
3. Create a screen session by running screen foo
4. Launch GNU Emacs 28.1
5. Run M-x list-colors-display

Expected behavior: Emacs shows the full spectrum of colors supported in the
current terminal

Actual behavior: Emacs shows the names of the full spectrum of colors, but
almost all of them are displayed in various shades of gray.

Workaround:
Add unsetenv COLORTERM to ~/.screenrc

The root cause is that GNU Emacs 28.1 added code that enables 24-bit color
if the COLORTERM=truecolor, but screen doesn't actually pass through 24-bit
color values correctly.

Until screen has support for 24-bit color values, it would be nice if it
automatically unset the COLORTERM environment variable during startup.

Reply via email to