Como posso listar os nomes de cores disponíveis?

23

Estou tentando adicionar um pouco de cor à minha configuração git e quero saber quais nomes de cores estão disponíveis no terminal.

  • Eu só quero usar cores pelo nome, para que outras pessoas entendam mais facilmente
  • Não quero adicionar novas cores - só quero selecionar os nomes predefinidos
  • Gostaria de uma solução que funcione para todas as distros, mas principalmente o Debian
  • Seria bom ver a cor que o nome indica

Muitas referências on-line costumam falar sobre nomes de cores que não estão definidos no meu sistema, então só preciso de uma maneira de ver quais são minhas opções padrão.

duvida1
fonte
Esta foi uma referência útil. Eu gosto dos scripts de shell. misc.flogisoft.com/bash/…
duvid1ejack

Respostas:

25

Muitas referências on-line costumam falar sobre nomes de cores que não estão definidos no meu sistema

Provavelmente são definidas, mas são cores X11; Era uma vez você poderia encontrá-los /lib[64]/X11/rgb.txt. De qualquer forma, este é um mapeamento de seqüências de caracteres (por exemplo, dimgray) para cores RGB de 24 bits (por exemplo , 0xff8800ou #ff8800, que seria laranja). Um espaço de 24 bits é de ~ 16 milhões de cores, obviamente o X11 não fornece todos os nomes (CSS 3 usa nomes X11, BTW).

O espaço de 24 bits é usado pela sua GUI; a transparência é implementada aumentando-a para um espaço de 32 bits. No entanto, gitnão é uma ferramenta GUI (G = gráfica), é uma ferramenta TUI (T = terminal), e está limitada às cores disponíveis em um terminal normal.

Gostaria de uma solução que funcione para todas as distros, mas principalmente o Debian

Se você deseja que ele seja portável corretamente, confie apenas nas oito cores ANSI padrão :

  • Preto
  • azul
  • verde
  • amarelo
  • ciano
  • branco
  • magenta
  • vermelho

Um pouco decepcionante ao lado da lista X11, mas melhor do que nada! Eles também possuem uma versão "em negrito" ou "brilhante" que é padrão, produzindo 16 cores, que você pode especificar como, por exemplo, "brightyellow" ( ou , inversamente, "darkyellow").

A maioria dos terminais da GUI 1 possui suporte para 256 cores e alguns aplicativos de terminal podem explorar isso. Para testar, primeiro você precisa definir a $TERMvariável adequadamente:

export $TERM=xterm-256color

Seu emulador de terminal também pode ter uma opção de configuração para isso. As cores sob o protocolo de cores xterm 256 são indexadas:

cartela de cores xterm

O número do índice está no canto inferior esquerdo. Observe que o conjunto na parte inferior deste gráfico (0-15) corresponde às 16 cores ANSI básicas (claras e escuras). Para referenciar uma dessas cores sob o padrão, use color+ o número do índice, por exemplo. color40.


1. Um "terminal da GUI" é um emulador de terminal executado em um contexto da GUI, como o xterm, o terminal GNOME etc. No entanto, isso não faz com que aplicativos TUI (como o git) sejam executados em um terminal da GUI em aplicativos da GUI. Eles ainda são aplicativos TUI e estão vinculados a esse contexto.

Cachinhos Dourados
fonte
Desculpe, a lista X11 pode ter sido enganosa. Não estou interessado em nenhum tipo de GUI - apenas cores disponíveis no terminal.
doub1ejack
Bem, aí está. Presumindo que o hardware normal, qualquer terminal que você encontra no linux tem 16 cores, os oito acima com uma versão "brilhante / negrito" conforme o padrão ANSI (embora, por exemplo, geralmente apenas o amarelo brilhante pareça amarelo; o normal pareça ocre, etc). Então, WRT para git, você pode usar aqueles 8. Meu ponto foi que você não pode usar apenas qualquer cor que você vê na tela. A interface do terminal é uma limitação. Oito cores básicas. Isso é tudo.
Goldilocks
2
@ duh1ejack: Adivinha o quê? Notei ontem que existe um padrão para nomear cores em terminais de 256 cores, e existem alguns aplicativos TUI que o utilizam, embora eu não tenha verificado o git. Enfim, eu editei algumas coisas sobre isso.
Goldilocks
Eu acho que existem apenas 8 cores e 8 versões brilhantes. Dizer que são 16 cores não é tecnicamente correto?
jiggunjer
1
Eu estava lendo esta resposta, esperando até chegar ao como. Eu estava quase lá, e a resposta parou.
ctrl-alt-delor 01/01