С URxvt и xterm возможно использовать виртуальный терминал, поддерживающий 256 цветов вместо только восьми. Так как моя видеокарта Intel GMA хорошо поддерживается драйвером кадрового буфера KMS, я являюсь исключительно рабочим на TTY. К сожалению, это только поддерживает восемь цветов, хотя с MPlayer (-vo fbdev/fbdev2) и другие инструменты кадрового буфера намного больше может быть обращено. Существует ли способ сказать TTY использовать больше чем восемь цветов?
Я пересматриваю свой ответ теперь, когда я уверен в вещах.
Это было ошибочно, чтобы прийти к заключению, что последовательности ANSI обрабатывались через BIOS или иначе за пределами ядра; действительно, они обрабатываются в ядре. Я нашел то, что я пропустил прежде благодаря hnaz_ на канале LinuxNewbies IRC: drivers/char/vt.c
реализует эмуляцию Цифрового оборудования терминал VT102, который используется драйвером виртуального терминала.
Так же... как категорический ответ, рассмотрев исходный код, который обрабатывает escape-последовательности для виртуальных терминалов: Если Вы хотите 256 цветной поддержки на виртуальных терминалах, необходимо будет создать Вас собственное ядро после расширения кода, который анализирует escape-последовательности для обработки более широкой спецификации цветов.
Функция вызвана csi_m (). Изменения должны будут быть подобны тем, которые расширяют основанные на X эмуляторы терминала для обработки escape-последовательностей, указывающих более богатые цветовые коды. Вероятно, будут другие изменения, необходимые также, но это - то, где Вы запустили бы.
Ваши 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
Escape-последовательности ANSI для того, чтобы выбрать основные цвета и цвета фона текста - то, что ограничивает вещи здесь.
Из памяти эти последовательности смотрят что-то как Escape [01; 34 м Там являются кодами в 30-х для переднего плана, и я думаю 40-е для фона.
Таким образом, я не думаю, что существует любой способ достигнуть того, что Вы ищете.