12

I just upgraded my gnome-terminal to use 256 colors, yet I am a bit puzzled on the reason why a terminal emulator can't support the full palette any modern desktop environment provides. I guess there's a technical reason for this, but I am not aware of it.

  • 2
    "Terminal" is a bit ambiguous... Are you talking about the "virtual terminals" ("VTs") found on F1 through F6 on many Linux/Unix-sytems, a "terminal emulator" like you use under X so you don't have to use the VTs, or do you mean an actual "terminal" - a simple keyboard-screen combo (without or with only minimal processing power) that is hooked into the actual computer via cable? – Baard Kopperud Apr 19 '13 at 10:26
  • 17
    Both virtual terminals and terminal emulators emulate old-fashion terminals with standardized capabilities (eg. vt100). When these terminals were around, memory was much more of an issue; so you could choose between big pixels/big letters and many colors, or small pixels/small letters and few colors - either combo would take-up the little memory set aside to represent the dots on the screen. They were intended for text-only programs, and it was more important to fit much text (many long lines) than many colors. You don't need many colors to "code" different types of text (eg bold/italic). – Baard Kopperud Apr 19 '13 at 10:37
  • 3
    @BaardKopperud That ought to be an answer. – a CVn Apr 19 '13 at 12:10
  • 2
    Yeah I'd suggest Baard post that comment as an answer because that's basically what the OP was asking for. Ultimately though, someone could have developed vt100+ (or whatever) and supported whatever they wanted. I'm guessing no one did that because if you want impressive graphics you'll probably be more interested in running it under X than under a terminal. – Bratchley Apr 19 '13 at 12:12
  • 3
    As questions go, asking "how do I...?" instead of "why doesn't it...?" makes more sense to me. The answer to "why doesn't it?" can be "you failed to make it do that." – user2472 Apr 19 '13 at 13:41
7
+50

There are no technical reason for it not to be possible. However there are not many reasons to why its not practical. With the limited amount of screen real-estate that characters represents on screen you would have a hard time finding use for more then 256 simultaneous colors on the screen.

As far as I know terminal clients use indexed color space. One of the reasons for that is that in its simplest form, 256 indexed colors can be described with one byte. Whilst RGB color space need two or three bytes. Considering how colors are encoded in a terminal stream, each color would at least be two bytes + any smart markup. This might not be a big issue memory vise, however when on a real time network stream it might add up on latency, especially (correct me if I am wrong) each character is sent in it's own package.

2

There really is not a current reason. Other than, perhaps, the escape codes were added only a few years ago to support true color. Many terminals have 24-bit color support now, see https://gist.github.com/XVilka/8346728

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.