Wie kann ich die Farbe des Conky-Textes per Datei / Skript ändern?

3455
Trevor

Ich habe eine Datei, die ein Wort enthält, "grün", "gelb" oder "rot" (diese Datei wird über einen Cron-Job aktualisiert.

Ich möchte diese Farbe verwenden, um Text in Conky anzuzeigen. Der tatsächliche Text bleibt derselbe, aber die Farbe wird abhängig von dieser Datei aktualisiert. Kennt jemand eine Möglichkeit, dies zu erreichen? Vielen Dank!

1

2 Antworten auf die Frage

2
micke

Erstellen Sie ein Bash-Skript, das Folgendes ausgibt $:

#!/bin/bash  read -r </path/to/color-file color echo -n '$' 

Und führe es in conky (alle 10 Sekunden) aus:

$ Hier farbiger Text

Etwas verschachtelt $}mag auch funktionieren.

Hier ist eine alternative Zeile # 4 für Ihr Skript, die auch funktioniert, wenn Ihre Farbdatei aus irgendeinem Grund außerhalb der 1. Zeile Abfall enthält (z. B. Steuerzeichen): `awk 'NR == 1 ' color-file` '. Ich würde "cat" in diesen Fällen immer vermeiden, da es immer riskant ist, blind zu glauben, dass die Datei nur eine saubere Zeile enthält. Eine leere Zeile nach der ersten Zeile kann bereits zu Problemen führen. syntaxerror vor 9 Jahren 0
Du hast Recht @syntaxerror Ich habe die Antwort bearbeitet und auch das Bash-Skript aktualisiert micke vor 9 Jahren 0
Sieht jetzt ziemlich gut aus, danke für das schnelle Update ... außer dass ich immer noch nicht sicher bin, ob dies in Conky * funktioniert, ohne dass * der erste "$" in der `echo '-Zeile mit einem Backslash gesichert wird. Conky ist bei diesen Dingen immer wählerisch. :) Auch wenn ich falsch liege. syntaxerror vor 9 Jahren 0
Nee, es ist cool. Keine Notwendigkeit, in einfachen Anführungszeichen zu fliehen. micke vor 9 Jahren 0
0
DRAD

Beachten Sie, dass Sie execp oder execpi benötigen, um die oben genannten Schritte auszuführen, da exec und execi die Ausgabe des Skripts nicht analysieren

execp: Führt einen Shell-Befehl aus und zeigt die Ausgabe in conky an. Warnung: Dies erfordert viel mehr Ressourcen als andere Variablen. Ich würde empfehlen, das gewünschte Verhalten in C zu codieren und einen Patch zu veröffentlichen. Dies unterscheidet sich von $ exec dahingehend, dass die Ausgabe des Befehls analysiert wird. Sie können also Dinge wie $ hi! $ in Ihr Skript einfügen und es von Conky richtig analysieren lassen. Vorsichtsmaßnahmen: Conky analysiert und wertet die Ausgabe von $ execp jedes Mal, wenn Conky-Schleifen ausgeführt werden, und zerstört dann alle Objekte. Wenn Sie versuchen, etwas wie $ execi innerhalb einer $ execp-Anweisung zu verwenden, wird es funktional in dem Intervall ausgeführt, in dem die $ execp-Anweisung ausgeführt wird, da sie in jedem Intervall erstellt und gelöscht wird.

Dies funktioniert auch, wenn Sie einfach eine Datei erstellen, z.

$