Softlinks verwenden
Fügen Sie in Ihrer ~/.conkyrc
Datei die Zeile hinzu:
$
Fügen Sie nach der qdbus
Zeile in Ihrem Skript die Zeile hinzu:
ln -sf "$(cat ~/.config/openbox/conky/image)" /tmp/conky.jpg
Dieser ln
Befehl aktualisiert die Link-Datei so /tmp/conky.jpg
, dass sie auf den Namen der Image-Datei in der ~/.config/openbox/conky/image
Datei verweist.
Um das gewünschte Verhalten zu erhalten, möchten Sie möglicherweise mit zwei Flags auf der Conky- image
Linie experimentieren: Mit dieser Option -n
wird conky angewiesen, das Bild nicht zwischenzuspeichern, während -f interval
das Cache-Leerlaufintervall von Conky für dieses Bild festgelegt wird.
Verwenden awk
Zusammenfassend ist der Name Ihrer Bilddatei in ~/.config/openbox/conky/image
und Sie möchten sie in Ihre ~/.conkyrc
Datei übertragen. Fügen Sie also nach der qdbus
Zeile in Ihrem Skript die Zeile hinzu:
awk -v "img=$(cat ~/.config/openbox/conky/image)" '/image/ 1' ~/.conkyrc.in >~/.conkyrc
Wo ~/.conkyrc.in
ist Ihre Prototyp-Conkyrc-Datei, die die Zeile enthält:
$
Der Befehl awk ersetzt xxxx durch den Namen Ihrer Image-Datei. Nachdem der awk
Befehl ausgeführt wurde, wird eine neue ~/.conkyrc
Datei mit dem richtigen Bildnamen erstellt.
Wie es funktioniert:
-v "img=$(cat ~/.config/openbox/conky/image)"
Dadurch wird eine
awk
Variable erstelltimg
und ihr der Inhalt zugewiesen~/.config/openbox/conky/image
./image/
Dies sucht nach Zeilen, die das Wort enthalten
image
. Für jede Zeile, die dieses Wort enthält, wird das erste Vorkommen vonxxxx
durch den Wert der Variablen ersetztimg
.1
Dieser kryptische Befehl weist awk nur an, jede Zeile zu drucken, die er aus der Eingabedatei erhält.
~/.conkyrc.in
Dies ist eine Eingabedatei, die die Dummy-
$
Dann renne:
m4 ~/.conkyrc.m4 >~/.conkyrc
m4
wird erkennentranslit
undinclude
als Befehle, denen es gehorchen sollte. Wenn es deninclude
Befehl sieht, liest es Ihren~/.config/openbox/conky/image
und schließt den Inhalt ein. Diese Datei hat wahrscheinlich ein neues Zeilenzeichen. Dertranslit
Befehl ist dazu da, um den Zeilenumbruch zu entfernen.m4
ist eine sehr leistungsfähige Makrosprache, mit der Sie viele Teile Ihrer Conkyrc-Datei verwalten können. Wenn Sie sich nicht die Zeit nehmen wollen, eine neue Sprache zu lernen, ist es wahrscheinlich einfacher, an derawk
Lösung zu bleiben .