TTY с 256 цветами?

С URxvt и xterm возможно использовать виртуальный терминал, поддерживающий 256 цветов вместо только восьми. Так как моя видеокарта Intel GMA хорошо поддерживается драйвером кадрового буфера KMS, я являюсь исключительно рабочим на TTY. К сожалению, это только поддерживает восемь цветов, хотя с MPlayer (-vo fbdev/fbdev2) и другие инструменты кадрового буфера намного больше может быть обращено. Существует ли способ сказать TTY использовать больше чем восемь цветов?

25
задан 15.11.2009, 03:08

3 ответа

Я пересматриваю свой ответ теперь, когда я уверен в вещах.

Это было ошибочно, чтобы прийти к заключению, что последовательности ANSI обрабатывались через BIOS или иначе за пределами ядра; действительно, они обрабатываются в ядре. Я нашел то, что я пропустил прежде благодаря hnaz_ на канале LinuxNewbies IRC: drivers/char/vt.c реализует эмуляцию Цифрового оборудования терминал VT102, который используется драйвером виртуального терминала.

Так же... как категорический ответ, рассмотрев исходный код, который обрабатывает escape-последовательности для виртуальных терминалов: Если Вы хотите 256 цветной поддержки на виртуальных терминалах, необходимо будет создать Вас собственное ядро после расширения кода, который анализирует escape-последовательности для обработки более широкой спецификации цветов.

Функция вызвана csi_m (). Изменения должны будут быть подобны тем, которые расширяют основанные на X эмуляторы терминала для обработки escape-последовательностей, указывающих более богатые цветовые коды. Вероятно, будут другие изменения, необходимые также, но это - то, где Вы запустили бы.

10
ответ дан 07.12.2019, 09:40

Ваши RXVT/xterm/URXVT/etc с 256 цветами определяются terminfo и установкой TERM переменная. В большинстве дистрибутивов Linux Ваши виртуальные терминалы определяются в /etc/inittab, и используйте терминальный тип по умолчанию, который определяет, сколько цветов терминал может использовать.

Существует ли способ сказать TTY использовать больше чем восемь цветов?

Да.

  • Удостоверьтесь, что Ваш кадровый буфер использует корректное разрешение/битовую глубину. Попытайтесь добавить vga=773 к опциям ядра, например, для получения 1024x768 и с 256 цветами (8-разрядная глубина цвета).

  • Установите другие СРОКИ (например, export TERM=foo). Необходимо будет экспериментировать для нахождения правильного. При нахождении того, который работает, можно изменить Ваш /etc/inittab так, чтобы Ваши виртуальные терминалы выполнили его по умолчанию (см. следующий раздел).

  • Эта статья обсуждает другие опции, которые могут работать на Вас. Это рекомендует Qingy (Qingy не является GettY) как getty замена, и может дать Вам, что Вы ищете, если переключение переменных ТЕРМИНА не является опцией.

  • Говоря о getty заменах, я клянусь, что видел инструкции для замены getty с GNU screen где-нибудь по пути. Я не нахожу ссылку в данный момент, но так как существует ТЕРМИН с 256 цветами для screen, Вы могли бы изучить его.


/etc/inittab строки использования как это для установки виртуальных терминалов:

# Format:
#  <id>:<runlevels>:<action>:<process>
#
1:2345:respawn:/sbin/getty 38400 tty1
2:2345:respawn:/sbin/getty 38400 tty2
3:2345:respawn:/sbin/getty 38400 tty3

Вот страница справочника на /sbin/getty (от моей системы Debian, таким образом, это технически agetty программа):

SYNOPSIS
       agetty [-8ihLmnw] [-f issue_file] [-l login_program] [-I init]
       [-t timeout] [-H login_host] baud_rate,...  port [term]

Отметьте baud_rate,... port [term] там в конце. Это совпадает с командой в /etc/inittab строка (/sbin/getty 38400 ttyN) - примечание там нет [term] аргумент, таким образом, мы получаем значение по умолчанию (выполненный echo $TERM после входа в систему на виртуальной консоли для наблюдения то, что система использует). Из страницы справочника снова:

ARGUMENTS
       term   The value to be used for the TERM environment variable.  This  over‐
              rides  whatever  init(8) may have set, and is inherited by login and
              the shell.

При нахождении ТЕРМИНА, который работает, измените getty строки в inittab и добавьте надлежащий ТЕРМИН в конце:

1:2345:respawn:/sbin/getty 38400 tty1 TERM-with-256-colors
2:2345:respawn:/sbin/getty 38400 tty2 TERM-with-256-colors
7
ответ дан 07.12.2019, 09:40

Escape-последовательности ANSI для того, чтобы выбрать основные цвета и цвета фона текста - то, что ограничивает вещи здесь.

Из памяти эти последовательности смотрят что-то как Escape [01; 34 м Там являются кодами в 30-х для переднего плана, и я думаю 40-е для фона.

Таким образом, я не думаю, что существует любой способ достигнуть того, что Вы ищете.

-1
ответ дан 07.12.2019, 09:40

Теги

Похожие вопросы