8d40fbfcc79221f0c607ae9afdd2b6983969505e
[sysstatus.git] / src / sysstatus.c
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 #include "common.h"
5 #include "config.h"
6 #include "statuses.h"
7
8
9 static char outline[4096];
10
11 static GlobalData gd = {
12   .line = outline,
13   .linemax = sizeof(outline),
14 };
15
16
17 void updatestatus()
18 {
19   GlobalData *g = &gd;
20
21
22   line_clear(g);
23
24   //status_uptime(g);
25
26   status_cpuusage(g);
27
28   status_battery(g, "BAT0");
29   status_battery(g, "BAT1");
30
31   status_memusage(g);
32
33   status_netif(g, "eth0");
34   //status_netif(g, "eth1");
35   //status_netif(g, "eth2");
36   //status_netif(g, "eth3");
37   status_netif(g, "eth4");
38   status_netif(g, "wlan0");
39   status_netif(g, "wlan1");
40   status_netif(g, "wlan2");
41   status_netif(g, "usb0");
42   status_netif(g, "usb1");
43   status_netif(g, "ppp0");
44   //status_netif(g, "ppp1");
45
46   //status_temp("GPU: ", "/sys/class/hwmon/hwmon0/device/temp4_input");
47   //status_temp("CPU: ", "/sys/class/hwmon/hwmon0/device/temp2_input");
48   status_temp(g, "CPU: ", "/sys/devices/platform/coretemp.0/temp1_input");
49
50   status_fan(g, "Fan: ", "/sys/devices/platform/thinkpad_hwmon/fan1_input");
51
52   if (status_volume_alsa(g, "default", "Master", 0))
53   if (status_volume_alsa(g, "default", "PCM", 0))
54   if (status_volume_alsa(g, "default", "Headset", 0))
55     ;
56
57   status_datetime(g);
58
59   line_print(g);
60
61   fflush(stdout);
62 }
63
64 int main()
65 {
66   struct timeval tv;
67
68   /* Initial JSON header for i3bar */
69   printf("{\"version\":1}\n[\n");
70
71   for(;;)
72   {
73     updatestatus();
74
75     tv.tv_sec = UPDATE_SECS;
76     tv.tv_usec = 0;
77
78     select(0, NULL, NULL, NULL, &tv);
79   }
80
81   return 0;
82 }