Чому емулятори терміналів Linux не підтримують повнокольорові кольори?


12

Щойно я модернізував свій gnome-термінал до використання 256 кольорів, але я трохи спантеличений причиною, чому емулятор терміналу не може підтримувати повну палітру, яку надає будь-яке сучасне робоче середовище. Я думаю, що для цього є технічна причина, але я цього не знаю.


2
"Термінал" трохи неоднозначний ... Ви говорите про " віртуальні термінали" ("VTs"), знайдені на F1 - F6 у багатьох Linux / Unix-ситемах, "термінальний емулятор ", як ви використовуєте під X, так що ви не Вам не доведеться використовувати VT, чи ви маєте на увазі фактичний "термінал" - простий комбінований клавіатурний екран (без або лише з мінімальною потужністю обробки), який підключається до фактичного комп'ютера за допомогою кабелю?
Баард Копперуд

17
І віртуальні термінали, і емулятори терміналів емулюють термінали старої моди зі стандартизованими можливостями (наприклад, vt100). Коли ці термінали були навколо, пам'ять стала набагато більшою проблемою; тож ви можете вибрати між великими пікселями / великими літерами та багатьма кольорами, або маленькими пікселями / малими літерами та кількома кольорами - будь-який комбінував би маленьку пам'ять, відкладену для відображення крапок на екрані. Вони були призначені лише для текстових програм, і важливіше було вмістити текст (багато довгих рядків), ніж багато кольорів. Вам не потрібно багато кольорів, щоб "кодувати" різні типи тексту (наприклад, жирний / курсив).
Баард Копперуд

3
@BaardKopperud Це повинно бути відповіддю.
CVn

2
Так, я б запропонував Баарду поставити цей коментар як відповідь, тому що це в основному те, про що просила ОП. Зрештою, хтось міг розробити vt100 + (або що завгодно) і підтримати все, що хотів. Я здогадуюсь, що ніхто цього не робив, тому що якщо ви хочете вражаючої графіки, вам, ймовірно, буде більше цікаво запускати її під X, ніж під терміналом.
Братчлі

3
У міру того, як іде питання, запитуючи "як я ...?" замість "чому це не ..." має більше сенсу для мене. Відповідь "чому це не відбувається?" може бути "вам не вдалося це зробити".

Відповіді:


7

Немає технічних причин, щоб це не було можливо. Однак існує не так багато причин, чому це не практично. З обмеженою кількістю нерухомості екрану, яку символи представляють на екрані, вам важко буде знайти використання більше 256 одночасних кольорів на екрані.

Наскільки мені відомо, клієнти терміналів використовують індексований кольоровий простір. Однією з причин цього є те, що в його найпростішому вигляді 256 індексованих кольорів можна описати одним байтом. У той час як для кольорового простору RGB потрібно два-три байти. З огляду на те, як кольори кодуються в кінцевому потоці, кожен колір мав би принаймні два байти + будь-яка розумна розмітка. Це може бути не великою проблемою пам'яті, але, коли в потоковому режимі мережевий потік може збільшити затримку, особливо (виправте мене, якщо я помиляюся), кожен символ надсилається у власному пакеті.


2

Насправді немає поточної причини. Окрім, можливо, кодів евакуації були додані лише кілька років тому для підтримки справжнього кольору. Зараз у багатьох терміналах є 24-розрядна підтримка кольорів, див. Https://gist.github.com/XVilka/8346728

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.