Не может применить яркость к цвету фона терминала

Самой близкой вещью, с которой я столкнулся к инструменту как это, является pkgs.org:

pkgs.org - Каталог программного обеспечения Linux и Поиск Пакетов pkgs.org создаются для предоставления Вам самый простой метод поиска и загрузки новейших версий лучшего программного обеспечения Linux - без обычных чрезмерных всплывающих окон или шпионского ПО. Также используйте его для нахождения альтернатив коммерческим пакетам с дорогими лицензионными сборами и сложными ограничениями.

Функции

  • Поиск об/мин, DEB, TGZ, пакетов TXZ из известных репозиториев Linux ALT, Дуга Linux, CentOS, Debian, Fedora, Mageia, Монетный двор, OpenMandriva, openSUSE, PCLinuxOS, RHEL, ROSA, Slackware, дистрибутивы Ubuntu;
  • Поиск пакетов по имени, имя файла, сводка, описание, требует, обеспечивает, файлы и каталоги;
  • Мощный браузер пакетов (сводка, описание, файлы, требует, обеспечивает, журнал изменений, и т.д.);
  • Практические руководства установки для всех доступных репозиториев;
  • Каталог бесплатного программного обеспечения;
  • RSS & Twitter;
  • Быстрые серверы, чтобы заставить Ваши пакеты искать максимально быстро;
  • Все пакеты загружаются только с официальных репозиториев!

7
06.10.2013, 19:38
4 ответа

Существует восемь стандартных цветов ANSI, поддерживаемых каждым эмулятором терминала. Большинство эмуляторов терминала также имеет восемь ярких вариантов стандартных цветов ANSI.

Однако фактические значения цвета, на которые отображаются управляющие коды, не стандартизированы, и на самом деле они часто немного варьируются среди эмуляторов терминала. Таким образом, если Вы делаете printf "\e[31;47mTest\n" для печати красного текста на белом фоне фактические оттенки красного и белого цвета, который Вы получаете, могут отличаться в зависимости от эмулятора терминала, который Вы используете.

Так, чтобы частично объяснил проблему: значения цвета не являются стандартными, и LXTerminal может иметь различные значения по умолчанию для его цветовой палитры, к которой Вы не привыкли. Если Вы озираетесь в настройках, обычно можно настроить цветовую схему, чтобы быть независимо от того, что Вам нравится.

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

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

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

Так, например, если бы Вы хотели распечатать яркий красный текст на ярком белом фоне, то Вы сделали бы это: printf "\e[91;107mTest\n".

Для ссылки вот таблица всех цветных управляющих кодов:

|    ANSI |    ANSI |    ANSI    |                | Aixterm | Aixterm 
|   Color | FG Code | BG Code    | Bright Color   | FG Code | BG Code 
+---------+---------+--------    +----------------+---------+-------- 
|   Black |      30 |      40    |   Bright Black |      90 |     100 
|     Red |      31 |      41    |     Bright Red |      91 |     101 
|   Green |      32 |      42    |   Bright Green |      92 |     102 
|  Yellow |      33 |      43    |  Bright Yellow |      93 |     103 
|    Blue |      34 |      44    |    Bright Blue |      94 |     104 
| Magenta |      35 |      45    | Bright Magenta |      95 |     105 
|    Cyan |      36 |      46    |    Bright Cyan |      96 |     106 
|   White |      37 |      47    |   Bright White |      97 |     107 
10
27.01.2020, 20:15
  • 1
    на самом деле, проблема не ограничена этими "управляющими кодами". У меня есть та же проблема с joe editor. В gnome-terminal, Я вижу серый фон. В LXTerminal это отсутствует. –  Martin Vegter 07.10.2013, 13:35
  • 2
    И Вы правы относительно фактических цветов, варьирующихся между различными эмуляторами терминала. Когда я открываю полуночного командующего в LXTerminal и gnome-terminal, синий цвет выглядит очень отличающимся. Но назад к моей исходной проблеме: серый фон в LXTerminal не просто другой цвет, чем в gnome-terminal, но это отсутствует полностью. –  Martin Vegter 07.10.2013, 13:49
  • 3
    Что Вы подразумеваете, что серый фон отсутствует? Это, вероятно, там, но не видимо, потому что это - тот же цвет как Ваше образование. Технически нет никакого серого цвета в ANSI, там является только черным или белым. Таким образом, возможно, Вам установили Ваш цвет фона на черный цвет, и черный ANSI отображается на черном цвете в LXTerminal но отображенный на сером в gnome-terminal. Я не использую LXTerminal, но я держал пари, смотрите ли Вы в настройках и изменяете какие-либо 'черные' цвета на 'серый', это станет видимым. –  Matt 07.10.2013, 21:25
  • 4
    Вы абсолютно правы. Когда я изменяю цвет фона моего LXTerminal к чему-то другому, чем черный, чем я вижу это printf "\n\033[1;31;40m"hello"\033[00m\n\n" текст печати на черном backround. Таким образом, что gnome-terminal интерпретирует как серый, LXTerminal интерпретирует как черный. Есть ли любой способ отобразиться серый в LXTerminal, то же как в gnome-terminal ? –  Martin Vegter 08.10.2013, 10:52
  • 5
    На самом деле aixterm является SGR 90-97 и 100-107. Яркие фоны для полужирного от других систем (не исходные к Linux, но используются там). –  Thomas Dickey 29.07.2016, 04:06

1 атрибут в начале 1;31;40 включает "полужирный" (иначе. "яркий"), режим, но некоторые терминалы только применяет это к основному цвету. Я понятия не имею, по какой причине (и замена переменной $TERM не имеет никакого значения), так как они действительно поддерживают 16, раскрашивает передний план 1 0 (от 40: 4 = фон, 0 = цвет), на самом деле черный, но "яркий черный цвет", является серым. Вот два решения:

  • Окрасьте 7 (белых), вероятно, окажется серым, не белый (для истинного белого, Вам нужен "яркий белый", имея в виду фон, который Вы на самом деле не можете иметь, является белым).

  • Необходимо смочь терминал гнома использования в LXDE, если Вы хотите. Просто установите его и запуститесь с gnome-terminal (Я полагаю, что это - его название команды). Затем необходимо будет настроить любые средства запуска для использования этого вместо lx-терминала.

1 Вот мое предположение: Заметьте, что полужирная установка применяет яркость к основному цвету и добавляет полужирный акцент. Следовательно, Вы не можете использовать яркий основной цвет, также не подавая заявку полужирный. По-видимому, назад, когда монохромные терминалы были общими, просто установив полужирный для акцента, например: \\033[1mBlah blah\\033[0m было распространено - и на самом деле это будет все еще работать, но это также сделает Ваш основной цвет ярким. Если бы мы считали это нежелательным для этого, чтобы также украсить фон (потому что это, как просто предполагается, является полужирным), то мы удостоверились бы, что реализация не сделала этого. О, хорошо.

5
27.01.2020, 20:15
  • 1
    я установил gnome-terminal и цвета отображены правильно. Это означает, что эта проблема характерна для LXTerminal ? Там какой-либо путь состоит в том, чтобы зафиксировать это? Я предпочел бы использовать LXTerminal, если эта проблема могла бы быть решена. –  Martin Vegter 06.10.2013, 22:09
  • 2
    Проблема не характерна для LXTerminal;действительно? gnome-terminal возможно, единственный терминал, чтобы сделать, что Вы хотите - я был пользователем Linux в течение ~15 лет и узнал о последовательностях ANSI вначале из-за подсказки; это было всегда похоже на это. Я смог выяснять решительно, почему путем исследования официальных спецификаций ANSI и/или прохождения через источник, но это потребует очень неопределенного промежутка времени ;) Я ничто не нашел обнадеживающим после просмотра веб-сайтов, настолько Ваш - хороший вопрос, но кто-то, кто уже знает, мог прийти в следующий день или так... –  goldilocks 06.10.2013, 22:26

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

echo -e "\e[1;32;7mText on a bright green background"

Загвоздка в том, что хотя теперь вы можете иметь 16 цветов фона, ограничение в 8 цветов теперь применяется к переднему плану/тексту. И чтобы еще больше запутать ситуацию, пока активен атрибут обратного видео -, вы должны установить цвет текста, используя коды атрибутов для цветов фона!

2
20.08.2021, 13:04

С 47=background whiteвместо 40=background blackвы получите не -полужирный белый цвет в качестве фона.

]# printf "\033[0;30;47m"hello"\033[00m\n"
hello (black on grey)
]# printf "\033[1;30;47m"hello"\033[00m\n"
hello (darkgrey on grey)
]# printf "\033[1;37;47m"hello"\033[00m\n"
hello (white on grey)
]# printf "\033[0;37;47m"hello"\033[00m\n"
hello (INVISIBLE grey on grey)

Жирный черный цвет по умолчанию дает темно-серый цвет. Обычный белый на самом деле серый, потому что жирный белый — это белый.


Этот цикл печатает два столбца со всеми сочетаниями цветов -на -черно-белом -на -цветах.

for ((i=30; i<=47; i++))
do
    echo -en  "\e[${i}mHello\e[0m";
    echo -e "\e[1;${i}mHello\e[0m";
done

Он начинается с невидимого черного и темно-серого -на черном -, но остальные 17 строк выглядят красиво и отображают всю цветовую палитру консоли.

(38 и 39 следует опустить, но для простоты я просто пробегаю от 30 до 47)


Принятый А. упоминает восемь цветов и отсутствие стандартов.

Шесть цветов 31 -36 (от красного до голубого )хорошо определены. Черный (30 )и белый (37 )тоже, но их жирные варианты меньше, особенно в качестве фона (40 и 47 ).


Я только что заметил :что в xterm обычный белый текст виден на сером фоне, а в консоли linux нет. (последняя строка с i=47)(до 30 минут назад скрипт остановился на 46, потому что я не хотел нечитаемых вариантов)

В обоих местах при выборе мыши -она умело адаптируется и остается читаемой при переворачивании.

0
20.08.2021, 13:04

Теги

Похожие вопросы