diff options
| -rw-r--r-- | src/comet.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/comet.c b/src/comet.c index 2bf642a..556ba75 100644 --- a/src/comet.c +++ b/src/comet.c @@ -56,6 +56,29 @@ static gboolean disk_update(gpointer data) return G_SOURCE_CONTINUE; } +static gboolean ram_update(gpointer data) +{ + Button *btn = data; + + FILE *meminfo = fopen("/proc/meminfo", "rb"); + + uintmax_t total, unused, buffers, cached; + g_assert(5 == fscanf(meminfo, + "MemTotal: %ju kB\n" + "MemFree: %ju kB\n" + "MemAvailable: %ju kB\n" + "Buffers: %ju kB\n" + "Cached: %ju kB\n", + &total, &unused, &buffers, &buffers, &cached)); + + g_free(btn->text); + btn->text = g_strdup_printf(" %d%%", (int)(100 * (total - unused - buffers - cached) / total)); + + log_debug("Updated ram percentage"); + state_redraw(btn->action_data); + return G_SOURCE_CONTINUE; +} + static gboolean date_update(gpointer data) { Button *btn = data; @@ -141,6 +164,14 @@ int main(int argc, char **argv) disk_update(disk_btn); g_timeout_add(60 * 1000, disk_update, disk_btn); + Button *ram_btn = button_create("ram", PANGO_ALIGN_RIGHT); + button_set_colors(ram_btn, background, foreground, stroke); + button_set_action(ram_btn, show_action, state); + state_add_button(state, ram_btn); + + ram_update(ram_btn); + g_timeout_add(60 * 1000, ram_update, ram_btn); + struct { State *state; timer_t timer; |
