jesseduffield / lazydocker

The lazier way to manage everything docker
MIT License
37k stars 1.19k forks source link

selectedLineBgColor always uses bright colours; default theme is illegible in white-on-black terminals #543

Open unikitty37 opened 4 months ago

unikitty37 commented 4 months ago

Describe the bug The selectedLineBgColor setting always seems to use bright colours. While that might work for people using dark text on a light background, it makes most of the options illegible when using dark backgrounds. In particular, there's hardly any difference between blue and cyan, whereas a dark blue background would be ideal.

The list of colour attributes doesn't seem to mention any way of selecting dark variants vs bright variants.

Setting red is a workaround; it's still pretty low-contrast, though. (Not to mention having a bright red bar always in a corner of the screen is a bit distracting, as I keep thinking something has failed!)

To Reproduce Steps to reproduce the behaviour:

  1. Configure your terminal theme to be white text on a black background.
  2. Launch lazydocker with an empty config file.
  3. Press x to open the menu, which has all-white text.
  4. Try to read the currently-selected item.

Expected behaviour The currently-selected item is

Screenshots blue:

image

cyan:

image

red:

image

Desktop (please complete the following information):

Additional context I guess lazydocker has no way of detecting whether the terminal has a dark or light background, and I don't believe there's an environment variable that's conventionally used to indicate this.

Allowing colour names to be prefixed with dark or bright to choose a specific variant might be useful. Adding a config option for selectedLineFgColor might work, too, as I could just set that to black.

OTOH, I'm using iTerm2 and my $TERM is xterm-256color, so support for the full range of 256 colours would be ideal :)

unikitty37 commented 4 months ago

Hm — on reading the docs for lazygit, I see hex values are valid as well, and that's let me choose something that works. If only I'd set that up first :)

It might be worth mentioning the hex option in the docs for lazydocker as well.