Frage Warum kann der benutzerdefinierte Statusbenachrichtigungscode von Byobu nicht in Farbe angezeigt werden?


Der unten stehende Code läuft gut in Bash und zeigt Text mit der richtigen grünen Hintergrundfarbe, aber wenn ich ihn zu dem hinzufüge ~/.byobu/bin/ Ordner zeigt stattdessen die Escape-Zeichen. Etwas wie [42m [1mAAPL: 30,345 (B [m

#!/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
2017-09-05 20:14


Ursprung




Antworten:


Wenn Sie die tmux Backend für Byobu, müssen Sie ein anderes Format für Farbcodes verwenden. Zum Glück ist es weniger kompliziert als die screen Format.

Um Farben einzustellen, verwenden Sie #[<color and attribute codes>]. Beispiele:

  • #[default]: Wiederherstellen der Standardfarben (am Ende des benutzerdefinierten Status verwenden).
  • #[fg=red]: Setzen Sie die Vordergrundfarbe auf rot.
  • #[fg=#ff0000]: Setzen Sie die Vordergrundfarbe auf #ff0000. Akzeptiert nur Kleinbuchstaben - FF0000 wird nicht funktionieren.
  • #[bg=black]: macht den Hintergrund schwarz.
  • #[fg=bold]: macht Text Fett gedruckt. Siehe unten für mehr.
  • #[reverse]: Tauscht Vordergrund- / Hintergrundfarben.

Sie können sie kombinieren, z.B. #[fg=white,bold,bg=black].

Benannte Farben: black, red, green, yellow, blue, magenta, cyan, white, black, brightblack, brightred, brightgreen, brightyellow, brightblue, brightmagenta, brightcyan, brightwhite

Attribute: dim, underscore, bold, reverse, standout, blinking, hidden, italics

Sie können auch die Umgebungsvariablen verwenden $BYOBU_LIGHT, $BYOBU_DARK, $BYOBU_ACCENT, und $BYOBU_HIGHLIGHT als Farben.


Um damit zu spielen, erstellen Sie eine Datei, ~/.byobu/bin/1_hello mit den folgenden Inhalten und mach es ausführbar.

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

Dies sollte eine Schwarz-in-Weiß-Statusbenachrichtigung erstellen, die "Hallo Welt" sagt.


A few custom status notifications for byobu

Hier sind zwei Beispiele für benutzerdefinierte Statusleistenkomponenten und die Codes, die sie erzeugen:

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

Diese Information wird wahrscheinlich funktioniert nur, wenn Sie verwenden tmux und eine Farbe-fähige Schale, obwohl :)


(Quellen: /usr/lib/byobu/include/colors, /usr/lib/byobu/include/shutil)


3
2017-08-14 17:44





Sie benötigen andere Farbbezeichner auf dem Bildschirm (siehe Manpage des Bildschirms (1)). Zuerst sollten Sie den Wert in einer Variablen speichern:

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

Und im zweiten Schritt können Sie es mit ausgeben printf:

printf "\005{= b}%s%s\005{-}" "AAPL: " "$AAPL"

1
2018-01-15 14:34



... Ich habe genau das gleiche Problem mit dem tmux-Backend - badp