diff options
Diffstat (limited to 'slstatus.c')
-rw-r--r-- | slstatus.c | 62 |
1 files changed, 62 insertions, 0 deletions
@@ -8,6 +8,7 @@ #include <limits.h> #include <locale.h> #include <netdb.h> +#include <pwd.h> #include <stdarg.h> #include <stdio.h> #include <stdlib.h> @@ -257,6 +258,22 @@ entropy(const char *null) return smprintf("%d", entropy); } +/* gid */ +char * +gid(const char *null) +{ + gid_t gid; + + if ((gid = getgid()) < 0) { + fprintf(stderr, "Could no get gid."); + return smprintf("n/a"); + } else { + return smprintf("%d", gid); + } + + return smprintf("n/a"); +} + /* hostname */ char * hostname(const char *null) @@ -450,6 +467,51 @@ temp(const char *file) return smprintf("%d°C", temperature / 1000); } +/* username */ +char * +username(const char *null) +{ + register struct passwd *pw; + register uid_t uid; + + /* get the values */ + uid = geteuid (); + pw = getpwuid (uid); + + /* if it worked, return */ + if (pw) { + return smprintf("%s", pw->pw_name); + } + else { + fprintf(stderr, "Could not get username.\n"); + return smprintf("n/a"); + } + + return smprintf("n/a"); +} + +/* uid */ +char * +uid(const char *null) +{ + register uid_t uid; + + /* get the values */ + uid = geteuid (); + + /* if it worked, return */ + if (uid) { + return smprintf("%d", uid); + } + else { + fprintf(stderr, "Could not get uid.\n"); + return smprintf("n/a"); + } + + return smprintf("n/a"); +} + + /* alsa volume percentage */ char * vol_perc(const char *soundcard) |