From 2f79dd96972201b147d9c1a5ec94cc0f543959b9 Mon Sep 17 00:00:00 2001 From: Inqiyad Sabr Date: Wed, 22 Oct 2025 23:29:12 +0600 Subject: Added memory status module --- bstatus.c | 1 + mem.c | 32 ++++++++++++++++++++++++++++++++ modules.h | 7 ++++++- 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 mem.c diff --git a/bstatus.c b/bstatus.c index 91a1a11..30eb098 100644 --- a/bstatus.c +++ b/bstatus.c @@ -16,6 +16,7 @@ int main(void) datetime(); battery(); cpu(); + mem(); write(1,"],",2); sleep(1); } diff --git a/mem.c b/mem.c new file mode 100644 index 0000000..e92b657 --- /dev/null +++ b/mem.c @@ -0,0 +1,32 @@ +#include +#include "block.h" +#define ICON_MEM " " +#define FG "#222222" +#define BG "#95b18b99" +#define mem_val(n)\ + for(n = 0; (c = fgetc(meminfo)) != '\n';)\ + if (c >= '0' && c <= '9')\ + n = 10 * n + (c - '0') +#define jmpl(n) fseek(meminfo,29*(n-1),0) +FILE *meminfo; +int mem_delay = 3; +char mem_str[15]; +void mem(void) { + if (mem_delay++ < 3) goto show_stat; + else mem_delay = 0; + if (!meminfo) meminfo = fopen("/proc/meminfo","r"); + int c, mem; + int total, free, buffers, + cached, shared, reclaim; + jmpl(1); mem_val(total); + jmpl(2); mem_val(free); + jmpl(4); mem_val(buffers); + jmpl(5); mem_val(cached); + jmpl(23); mem_val(shared); + jmpl(26); mem_val(reclaim); + mem = total + reclaim - (free+buffers+cached+shared); + mem /= 1024; + snprintf(mem_str,15,ICON_MEM"%5d MiB",mem); +show_stat: + block(mem_str,FG,BG,BG); +} diff --git a/modules.h b/modules.h index 139c9e7..2db07ce 100644 --- a/modules.h +++ b/modules.h @@ -12,8 +12,13 @@ void battery(void); #ifndef CPU_H #define CPU_H void cpu(void); -// cmus #endif +// mem +#ifndef MEM_H +#define MEM_H +void mem(void); +#endif +// cmus #ifndef CMUS_H #define CMUS_H void cmus(void); -- cgit v1.2.3