Why Byobu custom статус notification code fail to шоу in цвет?

The code below runs well in Bash and шоу text with proper green background цвет but when I add it to the ~/.byobu/bin/ folder it шоу the утечка characters instead. Something like [42m [1mAAPL:30.345 (B [м

#!/bin/sh
echo `tput setab 2;tput bold`AAPL:`curl -s 'http://download.finance.yahoo.com/d/quotes.csv?s=AAPL&f=sl1d1t1c1ohgv&e=.csv' | cut -d, -f2;tput sgr0`
4
задан 15 January 2013 в 17:58

2 ответа

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

AAPL=$(curl -s 'http://download.finance.yahoo.com/d/quotes.csv?s=AAPL&f=sl1d1t1c1ohgv&=.csv' | cut -d, -f2)

И на втором шаге можно произвести его с printf:

printf "\005{= b}%s%s\005{-}" "AAPL: " "$AAPL"
1
ответ дан 15 January 2013 в 17:58

При использовании tmux бэкенд для byobu, необходимо будет использовать другой формат для цветовых кодов. К счастью это менее сложно, чем screen формат.

Для выбирания цветов использовать #[<color and attribute codes>]. Примеры:

  • #[default]: восстановите цвета по умолчанию (использование в конце Вашего пользовательского состояния).
  • #[fg=red]: выберите основной цвет к красному.
  • #[fg=#ff0000]: выберите основной цвет к #ff0000. Только принимает нижний регистр- FF0000 не будет работать.
  • #[bg=black]: делает фон черным.
  • #[fg=bold]: делает текст полужирным. Посмотрите ниже для больше.
  • #[reverse]: передний план/цвета фона подкачек.

Можно объединить их, например. #[fg=white,bold,bg=black].

Именованные цвета: black, red, green, yellow, blue, magenta, cyan, white, black, brightblack, brightred, brightgreen, brightyellow, brightblue, brightmagenta, brightcyan, brightwhite

Атрибуты: dim, underscore, bold, reverse, standout, blinking, hidden, italics

Можно также использовать переменные среды $BYOBU_LIGHT, $BYOBU_DARK, $BYOBU_ACCENT, и $BYOBU_HIGHLIGHT как цвета.


Для проигрывания с этим создайте файл, ~/.byobu/bin/1_hello со следующим содержанием, и делают это исполняемым файлом.

#!/bin/sh
echo "#[reverse]Hello world#[default]"

Это должно создать черное-на-белом уведомление о состоянии, в котором говорится "Привет мир".


A few custom status notifications for byobu

Вот является два примера пользовательскими компонентами строки состояния и кодами, которые производят их:

  • #[fg=#aa77cc,bg=#222222] @XXX.XX #[default]
  • #[fg=white,bg=black] ✉ ️X #[default]

Эта информация будет, вероятно, только работать, если Вы будете использовать tmux и цветная поддерживающая оболочка, хотя :)


(Источники: /usr/lib/byobu/include/colors, /usr/lib/byobu/include/shutil)

4
ответ дан 1 December 2019 в 09:39

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

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