diff options
| author | Federico Angelilli <code@fedang.net> | 2023-11-25 11:59:19 +0100 |
|---|---|---|
| committer | Federico Angelilli <code@fedang.net> | 2023-11-25 11:59:19 +0100 |
| commit | 23ec3cf48cd22030b61452b600d4afceb4eded41 (patch) | |
| tree | 52f470fd781134172cf4071e37be06adc862f6aa | |
| parent | a71221d8c19920606836457f6c4ff0a7a0bed227 (diff) | |
Add ram button
| -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; |
