有没有办法使用 xscreensaver gltext 来监视系统信息?

有没有办法使用 xscreensaver gltext 来监视系统信息?

我正在尝试让 X 屏幕保护程序 gltext 监控我的系统温度和其他一些统计数据。编写一个定期汇总统计数据的脚本没有问题,但我遇到的主要问题是 gltext 不会刷新 - 无论我输入什么文本,它都会停留在那里。

例如,我运行这个命令:

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

并得到一个显示以下内容的 gltext 窗口:

temperature:             60 C

我可以根据需要对其进行操作和格式化,但是随着我的 CPU 升温并冷却,它不会更新,即使我包含了时间变量。

我有一个脚本,将时间作为第一行,将温度作为第二行提供给 gltext - 尽管时间会随着时间的变化而不断更新,但温度值与屏幕保护程序启动时的温度值保持不变。

我是否可以实现我的愿望,即当温度变化时每 60 秒更改一次文本?

答案1

我明白了。gltext 有一个-program标志,允许您将任何脚本输入其中,并且每 5 秒更新一次。strftime转义代码不会被正常处理,因此任何由该-program标志运行的脚本都需要有一种方法来输出时间。

答案2

阅读 gltext 上的文档,它说:

显示几行以实心 3D 字体旋转的文本。文本可以使用 strftime() 转义码来显示当前日期和时间

这让我相信发送到 gltext 的文本被提供给函数 strftime,因此时间变量(转义码)将被动态更新。没有证据表明任意信息或程序执行存在类似的功能,因此我不得不说,你想做的事情是不可能的。

在您的特定情况下,当您运行时gltext -text "`cat /proc/acpi/thermal_zone/THRM/temperature`",您的命令将运行一次,并且结果输出将转换为在启动时发送到 gltext 的参数,而 gltext 对曾经生成它的命令一无所知。

相关内容