1

У меня есть файл, который содержит одно слово, "зеленый", "желтый" или "красный" (этот файл обновляется с помощью задания cron.

Я хотел бы использовать этот цвет для отображения текста в Conky. Фактический текст останется прежним, но цвет будет обновляться в зависимости от этого файла. Кто-нибудь знает, как сделать эту работу? Спасибо!

2 ответа2

2

Создайте bash-скрипт, который выводит ${color yourcolor} :

#!/bin/bash

read -r </path/to/color-file color
echo -n '${color '$color'}'

И запустить его в conky (каждые 10 секунд):

$ {execpi 10 /path/to/script.sh} Цветной текст здесь {цвет}

Нечто вложенное, например, ${color ${head -1 /path/to/color-file}} также может работать.

0

Обратите внимание, что вам понадобится execp или execpi, чтобы выполнить вышеизложенное, поскольку exec и execi не анализируют выходные данные скрипта.

execp: выполняет команду оболочки и отображает вывод в conky. Предупреждение: это занимает намного больше ресурсов, чем другие переменные. Я бы порекомендовал написать код поведения на C и опубликовать патч. Это отличается от $ exec тем, что он анализирует выходные данные команды, поэтому вы можете вставить такие вещи, как $ {color red} hi!$ {color} в вашем скрипте и правильно его проанализировал Конки. Предостережения: Conky анализирует и оценивает выходные данные $ execp каждый раз, когда Conky делает цикл, а затем уничтожает все объекты. Если вы попытаетесь использовать что-то вроде $ execi в операторе $ execp, оно будет функционировать с тем же интервалом, что и оператор $ execp, так как он создается и уничтожается через каждый интервал.

Это также работает с простым катанием файла, такого как:

${execpi 15 cat /path/to/file.log}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .