From bb57a4eeff5d3788ef161859ffe953c650282273 Mon Sep 17 00:00:00 2001 From: whitehai11 Date: Wed, 13 May 2026 23:43:30 +0200 Subject: [PATCH] Improve uptime display in sysfetch Previously the uptime field only showed minutes. Now it displays a more detailed and human-readable format: Uptime: 3 mins Uptime: 2 hours, 15 mins Uptime: 1 day, 3 hours, 22 mins --- src/userland/cli/sysfetch.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/userland/cli/sysfetch.c b/src/userland/cli/sysfetch.c index 8bc07f2..ec953b3 100644 --- a/src/userland/cli/sysfetch.c +++ b/src/userland/cli/sysfetch.c @@ -323,13 +323,22 @@ int main(int argc, char **argv) { int b = sys_read(fd_u, u_buf, 63); u_buf[b] = 0; sys_close(fd_u); - int sec = atoi(u_buf); - int mins = sec / 60; + int sec = atoi(u_buf); + int days = sec / 86400; + int hrs = (sec % 86400) / 3600; + int mins = (sec % 3600) / 60; strcpy(info_lines[info_line_count], config.uptime_label); strcat(info_lines[info_line_count], ": "); - itoa(mins, temp_buf); - strcat(info_lines[info_line_count], temp_buf); - strcat(info_lines[info_line_count++], " mins"); + if (days > 0) { + itoa(days, temp_buf); strcat(info_lines[info_line_count], temp_buf); + strcat(info_lines[info_line_count], days == 1 ? " day, " : " days, "); + } + if (hrs > 0 || days > 0) { + itoa(hrs, temp_buf); strcat(info_lines[info_line_count], temp_buf); + strcat(info_lines[info_line_count], hrs == 1 ? " hour, " : " hours, "); + } + itoa(mins, temp_buf); strcat(info_lines[info_line_count], temp_buf); + strcat(info_lines[info_line_count++], mins == 1 ? " min" : " mins"); } } if (config.cpu_label[0]) {