Gibt es eine zuverlässige Möglichkeit, um zu überprüfen, wie viele Farben mein Terminal-Emulator unterstützt?
Wenn echo $TERM
gedruckt xterm
wird, sagt mir das eindeutig , wie viele Farben mein Terminal-Emulator unterstützt? Wie könnte ich diese Informationen zuverlässig überprüfen?
terminal-emulator
Amelio Vazquez-Reina
quelle
quelle
Antworten:
Der Wert von
$TERM
gibt nicht viele Informationen über die Anzahl der unterstützten Farben. Viele Terminals geben anxterm
, dass sie eine beliebige Anzahl von Farben unterstützen (2, 8, 16, 88 und 256 sind gemeinsame Werte).Sie können den Wert jeder Farbe mit der
OSC 4 ; c ; ? BEL
Kontrollsequenz abfragen . Wenn die Farbnummerc
unterstützt wird und das Terminal diese Steuerungssequenz versteht, antwortet das Terminal mit dem Wert der Farbe. Wenn die Farbnummer nicht unterstützt wird oder das Terminal diese Steuerungssequenz nicht versteht, antwortet das Terminal nicht. Hier ist ein Bash / Zsh-Snippet, mit dem abgefragt wird, ob Farbe 42 unterstützt wird (ggf. Weiterleitung zum / vom Terminal):Unter den gängigen Terminals unterstützen xterm und Terminals, die auf der VTE-Bibliothek basieren (Gnome-Terminal, Terminator, Xfce4-Terminal,…), diese Steuerungssequenz. rxvt, konsole, screen und tmux nicht.
Ich kenne keinen direkteren Weg.
quelle
read -d $'\a' -s -t 1
macht\a
(Klingelzeichen) ohne Echoeingabe mit einer Zeitüberschreitung von 1 Sekunde.tput colors
fragt die terminfo-Datenbank ab. Die Chancen stehen gut, dass Sie habenTERM=xterm
. Xterm unterstützt je nach Version und Kompilierungs- und Laufzeitoptionen mindestens 2, 8, 16, 88 oder 256 Farben, die terminfo-Datenbank kann jedoch nur einen Wert speichern. Sie können z. B. festlegenTERM=xterm+256color
, aber dann ärgern Sie sich, wenn Sie sich bei einem Computer anmelden, dessen termcap / terminfo-Datenbank diesen Eintrag nicht enthält.printf … >/dev/tty
) und dann vom Terminal lesen (read … </dev/tty
). Xterm reagiert auf dieOSC 4; …; ? BEL
Sequenz mit Tastatureingaben.Es gibt ein Perl-Skript, 256colors2.pl , das alle Farben auf Ihrem Terminal anzeigt.
quelle
Sie können verwenden
Auf meiner Debian-Installation ist tput Teil des
ncurses-bin
Pakets, das standardmäßig installiert ist.quelle
TERM
, nicht , wie viele Farben kann es tatsächlich unterstützen eine entsprechende gegebenTERM