summaryrefslogtreecommitdiff
path: root/slstatus.c
diff options
context:
space:
mode:
Diffstat (limited to 'slstatus.c')
-rw-r--r--slstatus.c62
1 files changed, 62 insertions, 0 deletions
diff --git a/slstatus.c b/slstatus.c
index 7af71e0..6d56000 100644
--- a/slstatus.c
+++ b/slstatus.c
@@ -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)