256 цветов в консоли (tty)

11

Предположим, у меня есть система без X server. Я могу войти только с консоли. Кажется, по умолчанию консоль linux поддерживает только 8 цветов:

# tput colors
8

Можно ли использовать в консоли 256 цветов, так же, как я использовал бы в эмуляторе терминала (т.е. терминатор)?

Во время поиска в Google я нашел много похожих вопросов (многие из них старше 10 лет), но ни одного однозначного ответа. Кто-то предлагает использовать framebuffer, кто-то другой предлагает добавить аргумент TERM в параметры загрузки ядра.

На данный момент я передаю только один дополнительный параметр в качестве параметра загрузки ядра:

append="video=1280x720"

Я считаю, что передача разрешения видео работает только в современных ядрах с kernel mode settingподдержкой, но я не уверен в этом.

Можно ли использовать 256 цветов в современной консоли linux (tty)

Как?

Я использую Debian Wheezy с ядром 4.1

ОБНОВИТЬ:

основываясь на предложении @muru, я попробовал fbterm. Хотя он работает с 256 цветами, он имеет очень уродливые / искаженные шрифты. Кроме того, в левом нижнем углу постоянно мигает курсор, что меня отвлекает.

Могу ли я использовать 256 цветов в консоли без fbterm / framebuffer?

Откуда берется ограничение в 8 цветов в консоли?

Мартин Вегтер
источник
FbTerm, очевидно, делает: superuser.com/a/492078/334516 , askubuntu.com/a/57128/158442
Muru
@muru - спасибо за предложение. Я обновил свой вопрос.
Мартин Вегтер
Конечно, если вы установите TERMна xterm-256colorдля Linux консоли, вы просто открыть другую банку с червями. Эта ссылка дает подсказку.
Томас Дики

Ответы:

2

Фактический вопрос состоит из этих двух пунктов:

  • Могу ли я использовать 256 цветов в консоли без fbterm / framebuffer?

  • Откуда берется ограничение в 8 цветов в консоли?

К первому: видимо нет. Все предложенные подходы используют fbterm. Ко второму: это происходит из описания терминала (он же «terminfo entry»). Для консоли Linux, с TERMустановленным на linux, говорит, что терминал поддерживает 8 цветов. tput получает информацию из базы данных терминала.

Один из элементов в цитируемой теме говорит, что fbterm использует другие escape-последовательности для установки цветов, чем xterm. Если это так (и учитывая склонность пользователей Emacs к жесткому кодированию), подходящего терминального входа для fbterm не существует.

Томас Дики
источник
Эмулятор терминала Ядро Linux получил некоторую дополнительную поддержку SGR в последние годы: github.com/torvalds/linux/commit/... github.com/torvalds/linux/commit/... github.com/torvalds/linux/commit/...
JdeBP
конечно - вы, возможно, не читали комментарий о регистрации: из-за аппаратных ограничений консолей VGA * цвета понижены до 16 переднего плана и 8 фонов. На консолях fbdev можно было бы поддерживать их без потери качества, но для добавления этого потребовалось бы довольно большое количество кода. *
Томас Дики
Я уже прочитал комментарий, поэтому я написал, что он получил дополнительную поддержку SGR . (-: Но обратите внимание, что это не всегда ограничение в 8 цветов, как вы написали здесь в 2016 году.
JdeBP
Это все та же палитра из 8 ANSI и 8 полужирного / светлого ANSI, которая была более 25 лет (а ncurses имеет запись linux-16color с 2009 года ).
Томас Дики