summaryrefslogtreecommitdiff
path: root/statusbar.c
diff options
context:
space:
mode:
Diffstat (limited to 'statusbar.c')
-rw-r--r--statusbar.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/statusbar.c b/statusbar.c
index 5f36935..e055100 100644
--- a/statusbar.c
+++ b/statusbar.c
@@ -1,8 +1,6 @@
/*
* Fast and easy way to gather the necessary information for dwm status bar
*
- * Compile with gcc -Wall -lacpi -lcpufreq -o statusbar statusbar.c
- *
* Copyright (c) 2007 T. Klauser <tklauser@distanz.ch>
*/
@@ -11,10 +9,14 @@
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
+#include <sys/sysinfo.h>
#include <libacpi.h>
#include <cpufreq.h>
#define DATE_STR "%a %Y-%m-%d %H:%M:%S"
+#define HOUR 3600 /* sec per hour */
+#define MINUTE 60 /* sec per min */
+#define LOADS_SCALE 65536.0
int main(int argc, char **argv)
{
@@ -22,7 +24,8 @@ int main(int argc, char **argv)
struct tm tim;
char str[25];
unsigned long freq, tmp_freq;
- double load[3];
+ long up, uph, upm;
+ struct sysinfo info;
global_t g;
if (check_acpi_support() == NOT_SUPPORTED)
@@ -75,10 +78,14 @@ int main(int argc, char **argv)
printf("Hz | ");
- /* 5) Load average */
- if (getloadavg(load, 3) < 0)
+ /* 5) Uptime and load average */
+ if (sysinfo(&info) < 0)
return -1;
- printf("%.02f %.02f %.02f\n", load[0], load[1], load[2]);
+
+ up = info.uptime;
+ uph = up / HOUR;
+ upm = (up % HOUR) / MINUTE;
+ printf("%lu:%.02lu | %.02f %.02f %.02f\n", uph, upm, info.loads[0] / LOADS_SCALE, info.loads[1] / LOADS_SCALE, info.loads[2] / LOADS_SCALE);
return 0;
}