terminal: New colour scheme based on gnome-terminal

Open Calvin Walton requested to merge kepstin/console:new-colours into main

This is an update based on the feedback I had in issue #96 (Feedback on KGX terminal palette). It also addresses the issues raised in #87 (Have a palette optimized for light colors).

For some history on the development of this palette:

As a summary: This is a somewhat opinionated palette developed to have a "GNOME-like" appearance, while having good compatibility with existing terminal applications that set both foreground and background colours.

The same contrast concerns between colours in the palette affect both dark and light modes, since terminal applications are able to set both bg and fg colours. Because of this, I prefer using a shared palette for both rather than separate dark and light palettes.

In the KGX implementation, the choices for foreground and background colours are based on Adwaita's colour choices for text field. One difference is that in dark mode I have chosen light grey rather than white as the fg colour to reduce contrast slightly. This is partly a reference to classic CGA/VGA text modes, and also provides a more calming lower contrast option (the colour choice still meets WCAG AAA).

I have enabled the "bold is bright" setting in vte. This particularly improves the default ls colours in many distros, which use bold blue (4) for directory names, but it also corrects the rendering of many legacy terminal applications and makes kgx's behaviour match the defaults of most other terminals (including the new Windows Terminal, KDE's Konsole, xterm, Linux KMS console, etc.)

I have not touched the alpha transparency; figuring out a better solution for that is a separate task.

Here's a summary on some of the choices made in the palette itself:

  • Black (0) and Bright White (15) are set to the background colours used by the Adwaita text field in dark and light mode respectively. Having these match the terminal background improves the appearance of some terminal apps.

  • White (7) and Bright Black (8) are set to in-between monochrome shades rather than choices from the icon palette, to better integrate with the Adwaita theme. (This is a change from the gnome-terminal palette.)

  • Yellow (3) is using a brown tone from the icon palette rather than yellow. This is partly a callback to the classic CGA/VGA text mode colours, and also ensure the colour is easily readable on both light and dark backgrounds.

  • Blue (4) is using a very dark tone. This is often used as a background colour with light foreground choices, so a dark colour is needed for contrast reasons. Apps rarely use this as a foreground colour, (instead using the bold/bright variation to get Bright Blue) so it doesn't cause contrast issues in dark mode.

  • Cyan was removed from the HIG icon palette, so new colours were made for Cyan (6) and Bright Cyan (14) derived from green and blue tones in the palette. The new cyan colour is less "blueish" than the old one.

  • Cyan (6), Bright Yellow (11), Bright Cyan (14) all have reduced brightness so that applications using them as foreground over the default background are readable in light mode.

  • Bright Red (9) has a particularly bright colour chosen, to avoid a luminance match with Blue (4) which could cause a dazzle effect.

A live preview of this scheme is available on my terminal palette test page - select "GNOME Console (kgx) Proposed update". The existing palette is also present for comparison.

Edited by Calvin Walton

Merge request reports