slstatus

My fork of https://tools.suckless.org/slstatus/
git clone https://git.inz.fi/slstatus
Log | Files | Refs | README | LICENSE

commit 1a143566e60d63435c7504382a717e0503decb47
parent bcd5732b04d5b8b6572b2d1f122a2762316ea476
Author: Aaron Marcher <info@nulltime.net>
Date:   Wed, 16 Nov 2016 21:20:26 +0100

Merge pull request #30 from TheMRod/master

Add a "uname -r" feature to see which kernel is running
Diffstat:
MCONTRIBUTORS.md | 1+
MREADME.md | 1+
Mconfig.def.h | 1+
Mslstatus.c | 12++++++++++++
4 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md @@ -8,3 +8,4 @@ Thanks you very much for your great help! - [sahne](https://github.com/sahne) - [Ali H. Fardan](http://raiz.duckdns.org) - [Quentin Rameau](https://fifth.space) +- [Mike Coddington](https://coddington.us) diff --git a/README.md b/README.md @@ -17,6 +17,7 @@ The following information is included: - Username/GID/UID - Hostname - IP addresses +- Kernel version - Load averages - Memory status (free memory, percentage, total memory and used memory) - Swap status (free swap, percentage, total swap and used swap) diff --git a/config.def.h b/config.def.h @@ -19,6 +19,7 @@ - gid (gid of current user) [argument: NULL] - hostname [argument: NULL] - ip (ip address) [argument: interface] +- kernel_release (uname -r) [argument: NULL] - load_avg (load average) [argument: NULL] - ram_free (free ram in GB) [argument: NULL] - ram_perc (ram usage in percent) [argument: NULL] diff --git a/slstatus.c b/slstatus.c @@ -20,6 +20,7 @@ #include <sys/socket.h> #include <sys/sysinfo.h> #include <sys/types.h> +#include <sys/utsname.h> #include <time.h> #include <unistd.h> #include <X11/Xlib.h> @@ -68,6 +69,7 @@ static char *username(void); static char *vol_perc(const char *card); static char *wifi_perc(const char *iface); static char *wifi_essid(const char *iface); +static char *kernel_release(void); static void set_status(const char *str); static void sighandler(const int signo); static void usage(void); @@ -721,6 +723,16 @@ wifi_essid(const char *iface) return smprintf("%s", (char *)wreq.u.essid.pointer); } +static char * +kernel_release(void) +{ + struct utsname udata; + if (uname(&udata) < 0) + return smprintf(UNKNOWN_STR); + + return smprintf("%s", udata.release); +} + static void set_status(const char *str) {