apt – настроить цвета

Вопрос или проблема

введите описание изображения здесь

Меня сразу же беспокоит статусная строка в apt upgrade / apt update, которая имеет желтый цвет — так как я использую светлый фон, она почти нечитаема…

Я посмотрел страницу man по apt, но /colou?r не выдает никаких совпадений.

Я попробовал Google, но то, что я нашел, это что-то на StackExchange, где был дан ответ на конкретный случай, отличный от моего, и не было ссылки на документацию.

Мне хотелось бы получить конкретный ответ на мою проблему, но больше всего я хотел бы ссылку на какую-то (не)официальную документацию, которая объясняет цвета в apt и как изменить каждое значение по умолчанию.

Заранее спасибо

ps apt как утилита командной строки — базовая инфраструктура пакетов дистрибутивов на базе Debian это Apt.

Вот частичный ответ, courtesy of David Kalnischkies из APT на OFTC’s #debian-apt.

apt update -o APT::Color::Yellow="$(printf '\e[36m')"

Я думаю, что этот цвет — циан. Для других цветов смотрите https://github.com/shiena/ansicolor/blob/master/README.md

Чтобы добавить это в конфигурацию APT на постоянной основе, вы можете сделать (например):

printf "APT::Color::Yellow \"\e[36m\";\n" >> /etc/apt/apt.conf

Что добавит, как выглядит следующий фрагмент (если вы читаете файл с помощью less) в /etc/apt/apt.conf:

APT::Color::Yellow "ESC[36m";

Спасибо @sebasth за то, что предложил это printf заклинание.

Самый простой способ — просто отключить все цвета.

Создайте файл /etc/apt/apt.conf.d/80colors, содержащий строку: Binary::apt::APT::Color "0";

Запустите это:

echo 'Binary::apt::APT::Color "0";' | sudo tee /etc/apt/apt.conf.d/80colors

Поскольку выглядит так, что есть повторяющиеся вопросы (включая тот, который привел меня сюда) о цветах в apt и не так много документации по этому, я подумал, что будет полезно немного углубиться в это. Следующее расширяет ответ Фаима Миты.

Исходный код apt содержит определения цветов для выделения и нейтрального, а также несколько цветов (красный, зеленый и т. д.) в apt-private/private-output.cc. Определения выглядят так:

APT::Color::Yellow "[33m";

Код внутри кавычек — это последовательность управляющих символов ANSI, комбинация шестнадцатеричных цифр, воспринимаемая многими терминальными оболочками, в данном случае для желтого цвета переднего плана. Первый символ в кодах цвета имеет шестнадцатеричное значение 1B. Печатаемого эквивалента нет. Если вы посмотрите на код, шестиугольная цифра может отобразиться как карет (^) или нечеткий квадрат или как ESC или вовсе не отображаться (как здесь), в зависимости от того, что отправляет вывод и куда.

Несмотря на наличие определения нескольких цветов, apt в настоящее время (1.8.2) не использует большинство из них. Выделение и нейтраль используются в нескольких местах, но ни один из цветов, кроме желтого, не используется. Он появляется в одной строке в acqprogress.cc в качестве цвета вывода для статуса.

Таким образом, “Желтый” можно рассматривать как заполнитель для цвета статусной строки. Если цвет не подходит (желтый на белом, например), изменение кода для “Желтого” — скажем, на синий:

([34m)  

и затем добавление его в конец /etc/apt/apt.conf с помощью подхода printf в ответе Фаима Миты исправит это:

printf "APT::Color::Yellow \"\e[34m\";\n" >> /etc/apt/apt.conf

В качестве альтернативы, вы можете использовать шестнадцатеричный редактор (Oktata в моем случае), чтобы напрямую изменить /etc/apt/apt.conf. Обратите внимание, что apt.conf может не существовать; apt будет нормально работать без него, но будет читать его, если он там.

Вот почему изменение цветов в оболочке перед запуском apt не имеет никакого влияния. Apt жестко закодирован, чтобы использовать свое определение “Желтого”.

Наконец, выполнение

apt-config dump

в терминале выведет любые коды цвета в apt.conf (среди прочего). Каждый код, в свою очередь, изменит цвета терминала. Если последняя или единственная строка в apt.conf — это “Желтый”, терминал будет установлен на то, что присвоено “Желтому”. Это можно избежать, помещая код сброса (который apt называет нейтральным)

"[0m";  

после нового определения “Желтого” в конце файла. Используя подход printf, это:

printf "APT::Color::Neutral \"\e[0m\";\n" >> /etc/apt/apt.conf

Вы можете настроить apt, редактируя файл /etc/apt/apt.conf

Примеры предоставлены в /usr/share/doc/apt/examples/configure-index.gz

Каждый терминальный эмулятор должен иметь какой-то редактор цветовых схем.

Просто задайте цвета, которые неприемлемы, на более подходящие.

введите описание изображения здесь

Ответ или решение

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

Изменение цвета статуса

  1. Чтобы изменить конкретный цвет (например, желтый), используйте следующую команду:

    apt update -o APT::Color::Yellow="$(printf '\e[34m')"

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

  2. Если вы хотите сделать это изменение постоянным, добавьте следующую строку в файл конфигурации apt:

    printf "APT::Color::Yellow \"\e[34m\";\n" | sudo tee -a /etc/apt/apt.conf

    Это добавит строку в файл apt.conf, в которой будет указано новое значение для цвета «Yellow».

Отключение цветов

Если вы решите, что удобнее полностью отключить цветовое форматирование, это можно сделать, создав файл /etc/apt/apt.conf.d/80colors и добавив в него строку:

echo 'Binary::apt::APT::Color "0";' | sudo tee /etc/apt/apt.conf.d/80colors

Понимание кодов цветов

Цвета в apt управляются с помощью последовательностей символов ANSI. Например:

  • Желтый цвет обозначается как "[33m",
  • Синий цвет обозначается как "[34m",
  • Нейтральный цвет, который обнуляет последние изменения, обозначается как "[0m".

Если вы хотите увидеть все текущие значения конфигурации, вы можете выполнить команду:

apt-config dump

Это покажет все параметры конфигурации apt, включая цвета.

Документация и ресурсы

Для более глубокого понимания конфигурации apt и описания цветов, вы можете ознакомиться с примерами конфигурации по следующему пути:

/usr/share/doc/apt/examples/configure-index.gz

Также вы можете обратиться к исходному коду apt, который содержит определения цветов. Например, они находятся в файле apt-private/private-output.cc. Однако изменения в исходном коде — это более сложный процесс и требует понимания C++.

Редактирование терминала

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

Надеюсь, эти инструкции помогут вам решить вашу проблему с цветами в apt. Если у вас есть дополнительные вопросы, пожалуйста, не стесняйтесь задавать их!

Оцените материал
Добавить комментарий

Капча загружается...