tSupport printing hw.sensors.cpu0.temp0 in Celsius - spoon - dwm status utility (2f30 fork)
 (HTM) git clone git://src.adamsgaard.dk/spoon
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) LICENSE
       ---
 (DIR) commit 5dd39d54cc2786fbb8f6d559943357dc59541567
 (DIR) parent 0b575aa3989ee877769a104c83203dbce2ff2e55
 (HTM) Author: lostd <lostd@2f30.org>
       Date:   Fri, 20 May 2016 23:23:19 +0100
       
       Support printing hw.sensors.cpu0.temp0 in Celsius
       
       Diffstat:
         M spoon.c                             |      28 ++++++++++++++++++++++++++++
       
       1 file changed, 28 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/spoon.c b/spoon.c
       t@@ -17,6 +17,7 @@
        int dummyread(char *buf, size_t len);
        int mpdread(char *buf, size_t len);
        int cpuread(char *buf, size_t len);
       +int tempread(char *buf, size_t len);
        int battread(char *buf, size_t len);
        int wifiread(char *buf, size_t len);
        int dateread(char *buf, size_t len);
       t@@ -30,6 +31,7 @@ struct ent {
                { .fmt = "[%s] ", .read = mpdread },
                { .fmt = "[%s] ", .read = xkblayoutread },
                { .fmt = "[%sMHz] ", .read = cpuread },
       +        { .fmt = "[%s] ", .read = tempread },
                { .fmt = "%s ", .read = battread },
                { .fmt = "%s ", .read = wifiread },
                { .fmt = "%s", .read = dateread },
       t@@ -79,6 +81,7 @@ out:
        #ifdef __OpenBSD__
        #include <sys/socket.h>
        #include <sys/sysctl.h>
       +#include <sys/sensors.h>
        #include <sys/ioctl.h>
        
        #include <net/if.h>
       t@@ -108,6 +111,25 @@ cpuread(char *buf, size_t len)
        }
        
        int
       +tempread(char *buf, size_t len)
       +{
       +        int mib[5];
       +        struct sensor temp;
       +        size_t sz;
       +
       +        mib[0] = CTL_HW;
       +        mib[1] = HW_SENSORS;
       +        mib[2] = 0; /* cpu0 */
       +        mib[3] = SENSOR_TEMP;
       +        mib[4] = 0; /* temp0 */
       +        sz = sizeof(temp);
       +        if (sysctl(mib, 5, &temp, &sz, NULL, 0) == -1)
       +                return -1;
       +        snprintf(buf, len, "%ddegC", (temp.value - 273150000) / 1000000);
       +        return 0;
       +}
       +
       +int
        battread(char *buf, size_t len)
        {
                struct apm_power_info info;
       t@@ -237,6 +259,12 @@ cpuread(char *buf, size_t len)
        }
        
        int
       +tempread(char *buf, size_t len)
       +{
       +        return -1;
       +}
       +
       +int
        battread(char *buf, size_t len)
        {
                return -1;