1

Я использую Arch Linux на своем новом ноутбуке и пытаюсь настроить его так, чтобы мне не требовался DE или X-сервер - мне просто нужны утилиты командной строки и VC (производительность и экономия меня от себя все это). В любом случае, я пытаюсь заставить цвета терминала работать правильно. Я не определился между xterm и urxvt - честно, с чем бы я ни работал, вероятно, я буду использовать его, по крайней мере, до тех пор, пока не пойму проблему лучше.

По сути, мои настройки (насколько я понимаю, так что берите с солью) таковы, что на VC1 у меня работает эмулятор терминала цвета xterm/urxvt 16 (также я использую Zsh, если это имеет значение). Я использую Tmux для мультиплексирования, поэтому и мои .zshrc и .tmux.conf в ~/ содержат строки, в которых для терминала по умолчанию установлено значение (xterm/rxvt) -16color.

Если я запускаю emacs либо непосредственно в терминале, либо в Tmux и запускаю M-x list-colors-display , он показывает 16 имен цветов. Первые восемь являются обычными, и они окрашены правильно. Тем не менее, цвета 9-16 являются яркими, и они отображаются в виде белого текста на черном фоне без назначенных им цветов.

У меня такое впечатление .Xresources - это место, где находятся настройки цвета, в форме *color0: #353535 и тому подобное. Здесь перечислены все 16 цветов со значениями, которые я бы хотел, чтобы они имели. Тем не менее, восемь цветных оттенков даже не в правильных оттенках - они имеют яркий контрастный цвет, который они используют по умолчанию, а не более мягкую тему, которую я скачал для тестирования.

Я прочитал, что вам нужно запустить xrdb -merge ~/.Xresources чтобы эти настройки вступили в игру. Тем не менее, у меня нет xrdb и когда я установил его, я получил ошибку «display not found» (что неудивительно), поэтому я удалил ее.

Тогда, наконец, возникает вопрос: что я должен сделать, чтобы xterm/rxvt знал (а) отображать все 16 цветов (поскольку я почти уверен, что у яркостей тоже есть значения по умолчанию, поэтому кажется, что что-то там не так) и ( б) использовать настройки цвета (и другие), которые я ему даю .Xresources (или в другом месте, если применимо) без использования xrdb .

Спасибо за понимание!

2 ответа2

1

Если вы используете консоль, а не X-сервер, настройки цвета не контролируются ~/.Xresources. Для приложений командной строки и curses это значение $ TERM и соответствующие записи в termcap и terminfo, которые определяют, как отображаются цвета.

Tmux может все усложнить, я не пробовал, поэтому не могу посоветовать. Я бы сначала все заработал без этого.

1

Запуск в консоли Linux (без X), установка TERM на xterm (любой вариант) или rxvt (любой вариант) не даст хороших результатов. Описание терминала linux является наиболее часто используемым.

Сравните те с infocmp, например,

infocmp xterm linux

и вы увидите ряд отличий.

Один из аспектов "ярких цветов" не проявляется в описании терминала: консоль Linux отображает жирный текст в виде более яркого текста. Некоторых это смущает, и они называют комбинации жирный шрифт + цвет в качестве дополнительных цветов (это не так, потому что приложение запрашивает жирный шрифт, который является атрибутом видео, например подчеркиванием, которое некоторые устройства также могут отображать как цвет).

xterm имеет управляющие последовательности для управления 16 цветами как таковыми; консоль Linux нет. Варианты TERM которые были опробованы, не были указаны, но если предположить, что один из них попробовал xterm-16color , то это произвело бы escape-последовательности для "цветов 8-15", которые не распознаются консолью Linux, и привело бы к появлению белого на черный (неокрашенный) который был описан.

Если вы запустите программу, которая выделяет жирный текст на терминале другого типа, вы, скорее всего, будете получать жирный шрифт другим способом (например, так).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .