summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOctavian Cerna <octavian.cerna@gmail.com>2015-08-03 00:45:45 +0300
committerOctavian Cerna <octavian.cerna@gmail.com>2015-08-03 00:45:45 +0300
commitc88c45c0c0b0cfb557550016e610174394853243 (patch)
treecaccea14b68d8990cd1b36b1ef247e9e4d628342
parente6e2927270adf1883185855490cd4927f2bf2713 (diff)
Use MemAvailable to determine the memory usage.HEADmaster
-rw-r--r--statusbar.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/statusbar.c b/statusbar.c
index 08c0c86..5388038 100644
--- a/statusbar.c
+++ b/statusbar.c
@@ -129,7 +129,7 @@ static void status_mem(void)
{
FILE *fp;
char line[256], field[128];
- unsigned long long value, total = 0, free = 0, cached = 0;
+ unsigned long long value, total = 0, free = 0, cached = 0, avail = 0;
double used;
if ((fp = fopen("/proc/meminfo", "r")) == NULL) {
@@ -141,13 +141,18 @@ static void status_mem(void)
total = value;
else if (strcmp(field, "MemFree:") == 0)
free = value;
+ else if (strcmp(field, "MemAvailable:") == 0)
+ avail = value;
else if (strcmp(field, "Cached:") == 0)
cached = value;
}
}
fclose(fp);
- used = (total - free - cached) * 100.0 / total;
+ if (avail < 1) {
+ avail = free + cached;
+ }
+ used = (total - avail) * 100.0 / total;
add_status("Mem %s%2.f%s%%", used > 90.0 ? HOT : COOL, used, NORMAL);
}