git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: report default colors

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 23, 2022, 01:32 UTC
Message-ID
<xmqqili2rjkn.fsf@gitster.g>
In-Reply-To
<FC7C600C-5D51-4BE0-82BD-9E28C88A1BB8@icloud.com>
James Lowden <james.k.lowden@icloud.com> writes:
Show 7 quoted lines
> I can get a list of all keys from "git help", which is something.
> But I'm left guessing at which keys control the text on the screen
> for a given command, and what color they are.
>
> In the instant case, "git push" was rejected, and the reason is
> impossible to read because it's in yellow on a light blue
> background.

Interesting. I wonder where you are getting the yellow from. The hardcoded default comes from these in builtin/push.c

    static int push_use_color = -1;
    static char push_colors[][COLOR_MAXLEN] = {
            GIT_COLOR_RESET,
            GIT_COLOR_RED,	/* ERROR */
    };
    enum color_push {
            PUSH_COLOR_RESET = 0,
            PUSH_COLOR_ERROR = 1
    };
and the push_colors[PUSH_COLOR_ERROR][] is used here
	...
	if (err != 0) {
		fprintf(stderr, "%s", push_get_color(PUSH_COLOR_ERROR));
		error(_("failed to push some refs to '%s'"), anon_url);
		fprintf(stderr, "%s", push_get_color(PUSH_COLOR_RESET));
	}
so I wouldn't be surprised if you see this painted in red, but yellow?
In any case, there are two things _we_ should do on our end.

One obviously is to document the default when we document configurables (e.g. color.push.error only says "Use customized color for push errors", but it should say by default it uses red).

The other is about this part:
> ...  My workaround
> is to guess what it probably says (probably it says I need to
> pull).  When that doesn't work, I copy and paste the text into
> emacs.

No color is well recognizable on all backgrounds, and people use different background, so we need to make sure that our coding guidelines tell our developers (1) not to use unusual colors for common things, and/or (2) make both foreground and background configurable.

(1) is because if we stick to small number of common colors, it would make it easier for users to find and use a single background that works well with these colors.

(2) is because there will be some users who find whatever common default colors we use not working for them. They may need higher contrast between background and foreground, and allowing both be tweakable would make it easier for them to find the color pairs that work well.

Thanks.
Previous: James Lowden
Message 2 of 2 in “report default colors”
  1. James LowdenDec 22, 2022
  2. Junio C HamanoDec 23, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.