Warum unterstützen Linux-Terminalemulatoren keine Vollfarben?

12

Ich habe gerade mein Gnome-Terminal auf 256 Farben aufgerüstet, bin aber etwas verwirrt darüber, warum ein Terminal-Emulator nicht die gesamte Palette unterstützen kann, die eine moderne Desktop-Umgebung bietet. Ich denke, es gibt einen technischen Grund dafür, aber ich bin mir dessen nicht bewusst.

Stefano Borini
quelle
2
„Terminal“ ist ein bisschen zweideutig ... Sprechen Sie über das „ virtuelle Terminals“ ( „VTs“) auf F1 bis F6 gefunden auf vieler Linux / Unix-Syteme, „Terminal Emulator “ , wie Sie unter X verwenden , so dass Sie don Müssen Sie die VTs nicht verwenden, oder meinen Sie ein tatsächliches "Terminal" - eine einfache Tastatur-Bildschirm-Kombination (ohne oder mit nur minimaler Rechenleistung), die über ein Kabel mit dem eigentlichen Computer verbunden ist?
Baard Kopperud
17
Sowohl virtuelle Terminals als auch Terminalemulatoren emulieren herkömmliche Terminals mit standardisierten Funktionen (z. B. vt100). Wenn diese Terminals in der Nähe waren, war der Speicher ein viel größeres Problem. Sie könnten also zwischen großen Pixeln / großen Buchstaben und vielen Farben oder kleinen Pixeln / kleinen Buchstaben und wenigen Farben wählen - jede Kombination würde den kleinen Speicher belegen, der für die Darstellung der Punkte auf dem Bildschirm reserviert ist. Sie waren für reine Textprogramme gedacht, und es war wichtiger, viel Text (viele lange Zeilen) als viele Farben einzufügen. Sie benötigen nicht viele Farben, um verschiedene Textarten zu "codieren" (z. B. fett / kursiv).
Baard Kopperud
3
@ BaardKopperud Das sollte eine Antwort sein.
ein CVn
2
Ja, ich würde Baard vorschlagen, diesen Kommentar als Antwort zu posten, denn darum hat das OP im Grunde gebeten. Letztendlich hätte jemand vt100 + (oder was auch immer) entwickeln und unterstützen können, was immer er wollte. Ich vermute, niemand hat das getan, denn wenn Sie beeindruckende Grafiken wollen, sind Sie wahrscheinlich mehr daran interessiert, sie unter X als unter einem Terminal auszuführen.
Bratchley
3
Wenn Fragen auftauchen, fragen Sie: "Wie kann ich ...?" statt "warum nicht ...?" macht für mich mehr Sinn. Die Antwort auf "Warum nicht?" kann sein "Sie haben es nicht geschafft, das zu tun."

Antworten:

7

Es gibt keinen technischen Grund, warum dies nicht möglich sein sollte. Es gibt jedoch nicht viele Gründe, warum es nicht praktisch ist. Mit der begrenzten Menge an Bildschirmfläche, die Zeichen auf dem Bildschirm darstellen, fällt es Ihnen schwer, mehr als 256 Farben gleichzeitig auf dem Bildschirm zu verwenden.

Soweit ich weiß, verwenden Terminal-Clients einen indizierten Farbraum. Einer der Gründe dafür ist, dass in seiner einfachsten Form 256 indizierte Farben mit einem Byte beschrieben werden können. Der RGB-Farbraum benötigt zwei oder drei Bytes. Wenn man bedenkt, wie Farben in einem Terminal-Stream codiert werden, würde jede Farbe mindestens zwei Bytes + jedes Smart-Markup betragen. Dies ist möglicherweise kein großes Problem im Hinblick auf die Speicherkapazität. Bei einem Echtzeit-Netzwerk-Stream kann sich jedoch die Latenz erhöhen, insbesondere wenn ich mich irre. Jedes Zeichen wird in einem eigenen Paket gesendet.

Fredrik Andersson
quelle
2

Es gibt wirklich keinen aktuellen Grund. Abgesehen davon, dass die Escape-Codes möglicherweise erst vor einigen Jahren hinzugefügt wurden, um die Echtfarbe zu unterstützen. Viele Terminals unterstützen jetzt 24-Bit-Farben (siehe https://gist.github.com/XVilka/8346728)

Kevin Tindall
quelle