Хотя замечательно, что в Terminal теперь есть встроенная поддержка для изменения цветов ANSI, меня раздражает, что он автоматически подстраивает цвета для повышения контрастности, что означает, что цвета, которые я на самом деле выбираю, часто оказываются размытыми или отключенными каким-либо другим способом. , Вот скриншот, объясняющий проблему:
Это меня беспокоит, потому что мне нравится использовать одну и ту же цветовую схему в Terminal и MacVim, и с такой обработкой цветов в Terminal они не совпадают с теми, что используются в MacVim.
Кто-нибудь знает решение этой проблемы, кроме перехода на iTerm 2 (что я бы предпочел не делать - мне нравится остальная часть Terminal, особенно некоторые касания GUI, такие как пульсирующий визуальный звонок). Благодарность!
Ответы:
Вот хитрость, которую вам нужно знать: значения, установленные через RGB, искажаются, а значения, установленные через HSB - нет.
У меня была похожая проблема с использованием (отличной) цветовой схемы Solarize : MacVim имел более темный (и правильный) цвет фона, чем Terminal, хотя я устанавливал все правильные значения RGB в соответствии со спецификацией Solarized. Глянь сюда:
По сути, вам нужно знать, какие значения цвета должны быть для каждого из цветов терминала ANSI, текста и фона (обратите внимание, что это на вкладке окна), а затем установить их с помощью средства выбора HSB вместо RGB. Смотрите этот пример:
По какой-то причине (я подозреваю, что какой-то тип профиля или, возможно, контрастная настройка), цвет RGB, который вы вводите, не тот, который вы получаете. Вы также заметите, что после того, как вы установите значения через HSB, переключение в палитру RGB покажет параметры, отличные от ожидаемых. Все преобразования в соляризованные значения согласуются в соответствии с Photoshop; Похоже, что то, что Apple Color Pick делает для вас.
источник
Device RGB
Теперь цвета, заданные шестнадцатеричным значением, не будут подвергаться преобразованию цветового пространства.
В Сьерре средство выбора цветового пространства изменилось на значок шестеренки:
Источник
источник
Цветовые профили, безусловно, важны, но здесь есть еще одна проблема: Terminal.app автоматически осветляет любой цвет при отображении поверх фона по умолчанию. Вот, например, цвета, выводимые Terminal.app с цветовой темой Solarized , измеренные с помощью DigitalColor Meter в режиме sRGB и сопоставленные с каноническими значениями Solarized sRGB.
При отображении на черном (или любом другом цвете) фоне Terminal.app выдает приблизительно правильные цвета; однако на фоне по умолчанию все цвета, кроме текста по умолчанию и полужирного текста, по умолчанию слишком яркие.
источник
Откройте окно настроек вашей темы, переключите цвет фона, установите размытие на 0% и непрозрачность на 100%. После этого ваши цвета будут такими же, как вы хотите. Также вы должны проверить каждый цвет, который вы выбираете для текста для этих параметров.
источник
Короче говоря: нет, нет поддерживаемых средств, чтобы отключить это.
Терминал автоматически применяет минимальный контраст при отображении цвета ANSI (или расширенной таблицы из 256 цветов) на цвет фона терминала или при отображении цвета переднего плана / текста терминала на цвет фона ANSI.
Это должно быть удобно, так что можно установить цвет фона или переднего плана и сделать так, чтобы они контрастировали с цветами ANSI без необходимости настройки всех цветов ANSI. Это было особенно важно в более ранних версиях Terminal, в которых отсутствовала поддержка Preferences для настройки цветов ANSI.
В более старых версиях Terminal применялся минимальный контраст для всех цветовых комбинаций, но это означало, что, например, текст «красный на красном» стандарта ANSI мог быть читаемым, но некоторые программы намеренно отображают текст с одинаковым цветом переднего плана и фона, чтобы скрыть его (например, для отображения игровых подсказок или шуток). Из-за этого более новые версии Terminal не применяют минимальный контраст при отображении одного цвета ANSI на другом.
Теперь вместо того, чтобы обращаться к случаю одного цвета, Терминал избегает применения минимального контраста для всех комбинаций цветов ANSI, потому что предполагается, что если пользователь настраивает какие-либо цвета ANSI, они настраивают их все так, чтобы они контрастировали по желанию , Также предполагается, что эти пользователи будут корректировать или учитывать цвета фона и переднего плана терминала, чтобы соответствовать их желаемой цветовой схеме.
Если обходной путь использования цветов с разными цветовыми пространствами - предложенный в других ответах - работает, он, вероятно, полагается на ошибку в коде обработки цвета, которая должна работать с любым цветом и может перестать работать в будущем когда эта ошибка исправлена.
Если для вас важна возможность явного отключения или настройки режима минимальной контрастности, я рекомендую сообщить об этом Apple, отправив отчет по адресу https://developer.apple.com/bug-reporting/, используя любой идентификатор Apple ID.
источник