Jak mogę wyświetlić listę dostępnych nazw kolorów?

23

Próbuję dodać trochę koloru do mojej konfiguracji git i chcę wiedzieć, jakie nazwy kolorów są dostępne w terminalu.

  • Chcę używać kolorów według nazwy, aby inni mogli łatwiej to zrozumieć
  • Nie chcę dodawać żadnych nowych kolorów - chcę tylko wybrać spośród predefiniowanych nazw
  • Chciałbym rozwiązania, które działa dla wszystkich dystrybucji, ale przede wszystkim dla Debiana
  • Byłoby miło widzieć kolor, który wskazuje nazwa

Wiele odnośników online często mówi o nazwach kolorów, które nie są zdefiniowane w moim systemie, więc potrzebuję tylko sposobu, aby zobaczyć, jakie są moje domyślne opcje.

double1ejack
źródło
To było przydatne odniesienie. Lubię skrypty powłoki. misc.flogisoft.com/bash/…
doub1ejack

Odpowiedzi:

25

Wiele odnośników online często mówi o nazwach kolorów, które nie są zdefiniowane w moim systemie

Te prawdopodobnie są zdefiniowane, ale są to kolory X11; raz na jakiś czas można je znaleźć w /lib[64]/X11/rgb.txt. W każdym razie jest to mapowanie ciągów znaków (np. dimgray) Na 24-bitowe kolory RGB (np. 0xff8800Lub #ff8800, które byłyby pomarańczowe). 24-bitowe miejsce to ~ 16 milionów kolorów, oczywiście X11 nie nadaje im wszystkich nazw (CSS 3 używa nazw X11, BTW).

GUI wykorzystuje 24-bitowe miejsce; przezroczystość jest realizowana poprzez zwiększenie jej do 32-bitowej przestrzeni. Jednak gitnie jest narzędziem GUI (G = grafika), jest narzędziem TUI (T = terminal) i jest ograniczone do kolorów dostępnych na normalnym terminalu.

Chciałbym rozwiązania, które działa dla wszystkich dystrybucji, ale przede wszystkim dla Debiana

Jeśli chcesz, aby była odpowiednio przenośna, powinieneś polegać tylko na ośmiu standardowych kolorach ANSI :

  • czarny
  • niebieski
  • Zielony
  • żółty
  • cyjan
  • biały
  • magenta
  • czerwony

Trochę rozczarowujące przy liście X11, ale lepsze niż wcale! Mają one również „bold” lub „jasny” wersję, która jest standardem, dzięki czemu 16 kolorów, które ty może być w stanie określić, jak np „brightyellow” ( lub na odwrót „ciemnożółty”).

Większość terminali GUI 1 obsługuje 256 kolorów, a niektóre aplikacje terminali mogą to wykorzystać. Aby przetestować, najpierw musisz odpowiednio ustawić $TERMzmienną:

export $TERM=xterm-256color

Twój emulator terminala może również mieć do tego opcję konfiguracji. Kolory w protokole kolorów xterm 256 są indeksowane:

karta kolorów xterm

Numer indeksu znajduje się w lewym dolnym rogu. Zauważ, że zestaw na dole tego wykresu (0-15) to 16 podstawowych (jasnych i ciemnych) kolorów ANSI. Aby odwołać się do jednego z tych kolorów w standardzie, użyj color+ numeru indeksu, np. color40.


1. „Terminal GUI” to emulator terminala działający w kontekście GUI, takiego jak xterm, terminal GNOME itp. Nie powoduje to jednak, że aplikacje TUI (takie jak git) działają w terminalu GUI w aplikacjach GUI. Nadal są aplikacjami TUI i są powiązane tym kontekstem.

Złotowłosa
źródło
Przepraszamy, lista X11 mogła wprowadzać w błąd. Nie interesuje mnie żaden GUI - tylko kolory dostępne na terminalu.
doub1ejack,
Cóż, masz to. Zakładając, że jest to normalny sprzęt, każdy terminal, na który natrafisz w systemie Linux, ma 16 kolorów, z których osiem powyżej ma wersję „jasną / pogrubioną” zgodnie ze standardem ANSI (chociaż np. Zwykle tylko jasnożółty wygląda na żółty; normalny wygląda na ochrowy, itp). Więc WRT, aby git, możesz użyć tych 8. Chodziło mi o to, że nie możesz użyć dowolnego koloru, który widzisz na ekranie. Interfejs terminala jest ograniczeniem. Osiem podstawowych kolorów. To wszystko.
goldilocks,
2
@ doub1ejack: Zgadnij co? Wczoraj zauważyłem, że istnieje standard nazewnictwa kolorów na 256-terminalowych terminalach i niektóre aplikacje TUI z niego korzystają, chociaż nie sprawdziłem gita. W każdym razie edytowałem kilka rzeczy na ten temat.
goldilocks
Myślę, że jest tylko 8 kolorów i 8 jasnych wersji. Mówiąc, że mają 16 kolorów, nie jest technicznie poprawny?
jiggunjer
1
Czytałem tę odpowiedź, czekając, aż dojdę do tego, jak to zrobić. Byłem prawie na miejscu i odpowiedź się zatrzymała.
ctrl-alt-delor