Add configuration option to set color to 16 colors or 24-bit truecolor
### Problem to solve Recemt additions #8236 -> !3037 added automatic adjustment of colors used with `c.Green`, `c.Red`, etc. (generated by `ColorPalette` in `internal/iostreams/color.go`). This improves contrast when dark terminal background is detected. HOWEVER :D There exist terminal users who prefer the standardized 16 colors, and have tweaked their terminals to map the simple colors (`[0;31;49m` etc.) to a particular value that they like. They have taken care of their desired contrast level etc., and will not appreciate 24-bit colors (`[38;2;52;208;88m` etc.) chosen by someone else. ### Proposal Add a configuration option `colors:`, allowing user to force 16 colors even when 24-bit color is supported. It could support ~3-4 modes in the beginning: * `none` - disable colors, overriding any detected terminal capabilities, * `16_colors`, * `24-bit`/`truecolor`, * `auto` - previous behavior I'm open to discussion about the exact names :sweat_smile: ### Further details If the implemented behavior of `auto` is as before, and the other options *force* the coloring, then possibly this would resolve #1038, if you squint a bit. Currently `glab` has autodetection of color capabilities, based on environment variables including: ``` NO_COLOR COLOR_ENABLED TERM COLORTERM ``` However, many of these are shared between multiple applications, and many users have noted that it's hard to make `glab` and `glab` only behave in a particular way, when it comes to color output. ### Links / references Automatic detection of dark terminal background added in #8236 -> !3037
issue