在 awesome wm 中添加 CPU 温度小部件

最近我开始使用版本为 4.2 的 awesome wm,并且非常喜欢它;它显著改善了我的工作流程。我尝试了一些主题(如 copycats 和其他一些),但它们对我来说太花哨了。我喜欢默认配置,并一直在阅读这里:https://awesomewm.org/apidoc/index.html,以及来自 copycats 和其他一些的 rc.lua 和 theme.lua 文件,并已实现其中一些;键绑定、布局调整、启动程序。我想创建一个显示 CPU 温度的小部件,并按照这里的说明进行了制作:https://awesomewm.org/apidoc/classes/awful.widget.watch.html,如下所示:

wibox.widget.textbox('  |  '),
awful.widget.watch(
  'bash -c "cat/sys/class/hwmon/hwmon0/device/temp1_input"', 15),
wibox.widget.textbox('  |  '),
awful.widget.watch(
  'bash -c "cat /sys/class/hwmon/hwmon0/device/temp3_input"', 15),

它可以工作,但它显示了一个很大的数字,例如 43000 而不是 43。我该如何更改它?如果可能,我想显示成 43°C。

点赞
用户1442917
用户1442917

如果你得到了正确的数字并且只想将其除以1000,你可以使用可选的回调函数:

awful.widget.watch('bash -c "cat /sys/class/hwmon/hwmon0/device/temp1_input"', 15,
  function(widget, s) widget:set_text(tonumber(s)/1000) end)
2018-09-09 02:38:49
用户15389410
用户15389410

只需使用 sensors 命令,这样更容易。我通过创建一个小部件,让它更新到 sensors 命令的值来实现这个功能:

local wibox = require("wibox")
local awful = require("awful")

local temprature = wibox.widget {
    widget = awful.widget.watch('bash -c "sensors | grep CPU |     awk \'{print $2}\' | sed \'s/C/C   /\'"', 5),
}

local temprature_clr = wibox.widget.background()
temprature_clr:set_widget(temprature)
temprature_clr:set_fg("#e5a75b")

return temprature_clr
2021-11-23 11:35:16