Я пытаюсь получить заставку X-заставки для мониторинга температуры моей системы и, возможно, некоторых других характеристик. Написание скрипта, который периодически собирает статистику, не составляет проблемы, но главное, с чем я сталкиваюсь, это то, что gltext не обновляется - какой бы текст я ни вводил, он остается там.

Так, например, я запускаю эту команду:

$ /usr/lib/xscreensaver/gltext -text "`cat /proc/acpi/thermal_zone/THRM/temperature`"

и получите окно с текстом:

temperature:             60 C

Я могу манипулировать им и форматировать его по мере необходимости, но когда мой ЦП нагревается и охлаждается, он не обновляется, даже если я включаю переменные времени, которые это делают.

У меня есть скрипт, который выводит gltext время в качестве первой строки и temp в качестве второй строки - и хотя время постоянно обновляется с изменением времени, значение температуры остается тем же, что и при запуске заставки.

Можно ли делать то, что я хочу, то есть менять текст каждые 60 секунд, если температура меняется?

2 ответа2

1

Читая документацию по gltext, он говорит:

Отображает несколько строк текста, вращающихся сплошным трехмерным шрифтом. Текст может использовать экранирующие коды strftime() для отображения текущей даты и времени.

Это приводит меня к мысли, что текст, отправляемый в gltext, передается функции strftime, и поэтому переменные времени (escape-коды) будут динамически обновляться. Нет никаких свидетельств подобной функциональности для произвольной информации или выполнения программы, и поэтому я должен сказать, что невозможно делать то, что вы хотите делать.

В вашем конкретном случае, когда вы запускаете gltext -text "`cat /proc/acpi/thermal_zone/THRM/temperature`" , ваша команда запускается один раз, и полученный вывод преобразуется в аргумент, который отправляется при запуске в gltext, который не будет ничего знать о том, какая команда когда-то произвела это.

1

Я понял. gltext имеет -program флага , который позволяет кормить любой скрипт в него, и он обновляется каждые 5 секунд. Экранирующие коды strftime не обрабатываются нормально, поэтому любой скрипт, запускаемый флагом -program должен иметь способ вывода времени.

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