Change output format from dzen2 to i3bar
[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, "wlan0");
37   //status_netif(g, "wlan1");
38   status_netif(g, "wlan2");
39   //status_netif(g, "usb0");
40   status_netif(g, "ppp0");
41
42   //status_temp("GPU: ", "/sys/class/hwmon/hwmon0/device/temp4_input");
43   //status_temp("CPU: ", "/sys/class/hwmon/hwmon0/device/temp2_input");
44   status_temp(g, "CPU: ", "/sys/devices/platform/coretemp.0/temp1_input");
45
46   status_fan(g, "Fan: ", "/sys/devices/platform/thinkpad_hwmon/fan1_input");
47
48   status_volume_alsa(g, "default", "Master", 0);
49
50   status_datetime(g);
51
52   line_print(g);
53
54   fflush(stdout);
55 }
56
57 int main()
58 {
59   struct timeval tv;
60
61   /* Initial JSON header for i3bar */
62   printf("{\"version\":1}\n[\n");
63
64   for(;;)
65   {
66     updatestatus();
67
68     tv.tv_sec = UPDATE_SECS;
69     tv.tv_usec = 0;
70
71     select(0, NULL, NULL, NULL, &tv);
72   }
73
74   return 0;
75 }