Невозможно настроить все цвета терминала

Я пытаюсь настроить свой терминал так, чтобы все цвета были видны на светлом фоне. Я использую терминатор. Кажется, есть цвета, которые я не могу установить. На следующем снимке экрана вы видите очень светло-синий и очень светло-зеленый, видимый в тексте:

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

Как я могу изменить эти два цвета через терминатор? Еще лучше, как я могу легко реализовать цветовую схему, безопасную на светлом фоне?

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

1 ответ

Решение

Традиционно графические терминальные эмуляторы предлагали 16 (8 и их яркие аналоги) цветов - в дополнение к стандартным цветам переднего плана и фона. Это те, которые выбирают большинство приложений, и те, чьи точные значения RGB настраиваются в отображаемом диалоговом окне.

Позже это было расширено до 256-цветовой палитры (те же самые 16 + 240 новых (6*6*6 цветовых кубов и 24 значений оттенков серого)). Они также настраиваются, но не через графические настройки Terminator. Вы можете изменить эти значения с помощью escape-последовательности OSC 4, например echo -ne '\e]4;16;#123456\e\\' установить индекс палитры 16 в RGB #123456. Подтвердить echo -e '\e[38:5:16mtest\e[m' который печатает "тест" в этом цвете. Индекс изменяется от 0 до 15 для устаревших значений и от 16 до 255 для расширенных. (Также обратите внимание, что OSC 4 вступает в силу задним числом для текста, уже напечатанного с использованием этого индекса цветовой палитры, то есть недавно выпущенный OSC 4 с другим значением RGB перекрашивает ранее напечатанный "тест".)

Однако на практике эти новые 240 цветов обычно не перенастраиваются и имеют одинаковые значения RGB для большинства эмуляторов терминала. Вероятно, переопределение их не лучший подход.

Скорее всего, подсветка синтаксиса вашего редактора - или где бы вы ни делали этот скриншот - использует эти расширенные цвета, именно так вы получаете светло-зеленый. В дополнение к реконфигурации 256-цветовой палитры, другой подход заключается в изменении подсветки синтаксиса для использования других цветов или во избежание использования расширенной палитры. Для последнего экспорт TERM=xterm вместо TERM=xterm-256color это может быть обходной путь, так как он утверждает, что терминал поддерживает только 8/16 цветов вместо 256, и ваш редактор, вероятно, выберет другую цветовую схему, которая не использует расширенные цвета.

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

Другие вопросы по тегам