From e4a69fc16a031cf12b5fe54c356c4c36f6b16459 Mon Sep 17 00:00:00 2001 From: James Bunton Date: Sat, 12 Aug 2017 15:02:35 +1000 Subject: [PATCH] xfce4-genmon-script: show memory in MiB --- xfce4-genmon-script.c | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/xfce4-genmon-script.c b/xfce4-genmon-script.c index 9ac1360..5665c34 100644 --- a/xfce4-genmon-script.c +++ b/xfce4-genmon-script.c @@ -128,16 +128,15 @@ int read_cpu_percent() { return 100 - (int)round(idle_jiffys_per_cpu_second); } -int read_mem_percent() { +int read_mem_free_mibis() { char* meminfo = read_file("/proc/meminfo"); if (meminfo == NULL) { return -1; } - int mem_total = -1; int mem_free = -1; - while (*meminfo && (mem_total < 0 || mem_free < 0)) { + while (*meminfo && mem_free < 0) { char* line = read_next_line(&meminfo); if (line == NULL) { break; @@ -151,21 +150,17 @@ int read_mem_percent() { return -1; } - if (strcmp(key, "MemTotal") == 0) { - mem_total = parse_int(value_str); - } else if (strcmp(key, "MemAvailable") == 0) { + if (strcmp(key, "MemAvailable") == 0) { mem_free = parse_int(value_str); } } - if (mem_total < 0 || mem_free < 0) { - fprintf(stderr, "Failed to find MemTotal and MemAvailable in /proc/meminfo\n"); + if (mem_free < 0) { + fprintf(stderr, "Failed to find MemAvailable in /proc/meminfo\n"); return -1; } - int mem_used = mem_total - mem_free; - - return (int)round((double)mem_used / (double)mem_total * 100); + return (int)round((double)mem_free / 1024); } int read_battery_percent() { @@ -179,7 +174,7 @@ int read_battery_percent() { return parse_int(percent_str); } -void print_percent( +void print_red_threshold( char* name, char* units, int value, int red_low, int red_high @@ -208,7 +203,7 @@ int main(int argc, char** argv) { printf(""); if (strchr(show_flags, 'c')) { - print_percent( + print_red_threshold( "cpu", "%", read_cpu_percent(), 50, 100 @@ -216,15 +211,15 @@ int main(int argc, char** argv) { } if (strchr(show_flags, 'm')) { - print_percent( - "mem", "%", - read_mem_percent(), - 70, 100 + print_red_threshold( + "mem", " MiB", + read_mem_free_mibis(), + 0, 512 ); } if (strchr(show_flags, 'b')) { - print_percent( + print_red_threshold( "batt", "%", read_battery_percent(), 0, 25 -- 2.39.2