summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--LICENSE2
-rw-r--r--Makefile29
-rw-r--r--README5
-rw-r--r--components/Linux/ram.c52
-rw-r--r--components/Linux/temperature.c15
-rw-r--r--components/Linux/uptime.c24
-rw-r--r--components/OpenBSD/battery.c32
-rw-r--r--components/OpenBSD/cpu.c26
-rw-r--r--components/OpenBSD/entropy.c0
-rw-r--r--components/OpenBSD/ram.c77
-rw-r--r--components/OpenBSD/swap.c0
-rw-r--r--components/OpenBSD/wifi.c0
-rw-r--r--components/battery.c (renamed from components/Linux/battery.c)35
-rw-r--r--components/cpu.c (renamed from components/Linux/cpu.c)26
-rw-r--r--components/entropy.c (renamed from components/Linux/entropy.c)4
-rw-r--r--components/ram.c129
-rw-r--r--components/swap.c (renamed from components/Linux/swap.c)4
-rw-r--r--components/temperature.c (renamed from components/OpenBSD/temperature.c)15
-rw-r--r--components/uptime.c (renamed from components/OpenBSD/uptime.c)25
-rw-r--r--components/wifi.c (renamed from components/Linux/wifi.c)4
-rw-r--r--config.mk13
-rwxr-xr-xconfigure10
22 files changed, 258 insertions, 269 deletions
diff --git a/LICENSE b/LICENSE
index 6fa0384..ae87dc6 100644
--- a/LICENSE
+++ b/LICENSE
@@ -7,7 +7,7 @@ Copyright 2016 Vincent Loupmon <vincentloupmon@gmail.com>
Copyright 2016 Daniel Walter <d.walter@0x90.at>
Copyright 2016-2018 Ali H. Fardan <raiz@firemail.cc>
Copyright 2016 Jody Leonard <me@jodyleonard.com>
-Copyright 2016-2018 Quentin Rameau <quinq@fifth.space>
+Copyright 2016-2017 Quentin Rameau <quinq@fifth.space>
Copyright 2016 Mike Coddington <mike@coddington.us>
Copyright 2016-2018 parazyd <parazyd@dyne.org>
Copyright 2017 Tobias Stoeckmann <tobias@stoeckmann.org>
diff --git a/Makefile b/Makefile
index c68a271..00c35c4 100644
--- a/Makefile
+++ b/Makefile
@@ -2,34 +2,29 @@
# slstatus - suckless status monitor
.POSIX:
-include os.mk
include config.mk
REQ = util
COM =\
- components/$(OS)/battery \
- components/$(OS)/cpu \
+ components/battery\
+ components/cpu\
components/datetime\
components/disk\
- components/$(OS)/entropy \
+ components/entropy\
components/hostname\
components/ip\
components/kernel_release\
components/keyboard_indicators\
components/load_avg\
components/num_files\
- components/$(OS)/ram \
+ components/ram\
components/run_command\
- components/$(OS)/swap \
- components/$(OS)/temperature \
- components/$(OS)/uptime \
+ components/swap\
+ components/temperature\
+ components/uptime\
components/user\
components/volume\
- components/$(OS)/wifi
-
-SLSCFLAGS = -I$(X11INC) -D_DEFAULT_SOURCE $(CFLAGS)
-SLSLDFLAGS = -L$(X11LIB) $(LDFLAGS)
-SLSLIBS = -lX11 $(OSLIBS) $(LIBS)
+ components/wifi
all: slstatus
@@ -41,18 +36,14 @@ config.h:
cp config.def.h $@
.o:
- $(CC) -o $@ $(SLSLDFLAGS) $< $(COM:=.o) $(REQ:=.o) $(SLSLIBS)
+ $(CC) -o $@ $(LDFLAGS) $< $(COM:=.o) $(REQ:=.o) $(LDLIBS)
.c.o:
- $(CC) -o $@ -c $(SLSCFLAGS) $<
+ $(CC) -o $@ -c $(CPPFLAGS) $(CFLAGS) $<
clean:
rm -f slstatus slstatus.o $(COM:=.o) $(REQ:=.o)
-distclean:
- for os in Linux OpenBSD; do make OS="$$os" clean; done
- rm -f os.mk
-
dist:
rm -rf "slstatus-$(VERSION)"
mkdir -p "slstatus-$(VERSION)/components"
diff --git a/README b/README
index b09fb77..78dc7ab 100644
--- a/README
+++ b/README
@@ -36,9 +36,8 @@ In order to build slstatus you need the Xlib header files.
Installation
------------
-Run ./configure first to detect your operating system.
-Optionally edit config.mk to match your local setup (slstatus is installed into
-the /usr/local namespace by default). Uncomment OSSLIBS on OpenBSD.
+Edit config.mk to match your local setup (slstatus is installed into the
+/usr/local namespace by default). Uncomment OSSLIBS on OpenBSD.
Afterwards enter the following command to build and install slstatus (if
necessary as root):
diff --git a/components/Linux/ram.c b/components/Linux/ram.c
deleted file mode 100644
index 7df5f85..0000000
--- a/components/Linux/ram.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* See LICENSE file for copyright and license details. */
-#include <stdio.h>
-
-#include "../../util.h"
-
-const char *
-ram_free(void)
-{
- long free;
-
- return (pscanf("/proc/meminfo", "MemFree: %ld kB\n", &free) == 1) ?
- bprintf("%f", (float)free / 1024 / 1024) : NULL;
-}
-
-const char *
-ram_perc(void)
-{
- long total, free, buffers, cached;
-
- return (pscanf("/proc/meminfo",
- "MemTotal: %ld kB\n"
- "MemFree: %ld kB\n"
- "MemAvailable: %ld kB\nBuffers: %ld kB\n"
- "Cached: %ld kB\n",
- &total, &free, &buffers, &buffers, &cached) == 5) ?
- bprintf("%d", 100 * ((total - free) - (buffers + cached)) / total) :
- NULL;
-}
-
-const char *
-ram_total(void)
-{
- long total;
-
- return (pscanf("/proc/meminfo", "MemTotal: %ld kB\n", &total) == 1) ?
- bprintf("%f", (float)total / 1024 / 1024) : NULL;
-}
-
-const char *
-ram_used(void)
-{
- long total, free, buffers, cached;
-
- return (pscanf("/proc/meminfo",
- "MemTotal: %ld kB\n"
- "MemFree: %ld kB\n"
- "MemAvailable: %ld kB\nBuffers: %ld kB\n"
- "Cached: %ld kB\n",
- &total, &free, &buffers, &buffers, &cached) == 5) ?
- bprintf("%f", (float)(total - free - buffers - cached) / 1024 / 1024) :
- NULL;
-}
diff --git a/components/Linux/temperature.c b/components/Linux/temperature.c
deleted file mode 100644
index fa50826..0000000
--- a/components/Linux/temperature.c
+++ /dev/null
@@ -1,15 +0,0 @@
-/* See LICENSE file for copyright and license details. */
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "../../util.h"
-
-const char *
-temp(const char *file)
-{
- int temp;
-
- return (pscanf(file, "%d", &temp) == 1) ?
- bprintf("%d", temp / 1000) : NULL;
-}
diff --git a/components/Linux/uptime.c b/components/Linux/uptime.c
deleted file mode 100644
index e7afc8e..0000000
--- a/components/Linux/uptime.c
+++ /dev/null
@@ -1,24 +0,0 @@
-/* See LICENSE file for copyright and license details. */
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/sysinfo.h>
-
-#include "../../util.h"
-
-const char *
-uptime(void)
-{
- int h;
- int m;
- int uptime = 0;
- struct sysinfo info;
-
- sysinfo(&info);
- uptime = info.uptime;
-
- h = uptime / 3600;
- m = (uptime - h * 3600) / 60;
-
- return bprintf("%dh %dm", h, m);
-}
diff --git a/components/OpenBSD/battery.c b/components/OpenBSD/battery.c
deleted file mode 100644
index daefd77..0000000
--- a/components/OpenBSD/battery.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* See LICENSE file for copyright and license details. */
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/ioctl.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <machine/apmvar.h>
-
-#include "../../util.h"
-
-const char *
-battery_perc(const char *null)
-{
- struct apm_power_info apm_info;
- int fd;
-
- fd = open("/dev/apm", O_RDONLY);
- if (fd < 0) {
- fprintf(stderr, "open '/dev/apm': %s\n", strerror(errno));
- return NULL;
- }
-
- if (ioctl(fd, APM_IOC_GETPOWER, &apm_info) < 0) {
- fprintf(stderr, "ioctl 'APM_IOC_GETPOWER': %s\n", strerror(errno));
- close(fd);
- return NULL;
- }
- close(fd);
-
- return bprintf("%d", apm_info.battery_life);
-}
diff --git a/components/OpenBSD/cpu.c b/components/OpenBSD/cpu.c
deleted file mode 100644
index 11f1812..0000000
--- a/components/OpenBSD/cpu.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* See LICENSE file for copyright and license details. */
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/sysctl.h>
-
-#include "../../util.h"
-
-const char *
-cpu_freq(void)
-{
- int freq, mib[2];
- size_t size;
-
- mib[0] = CTL_HW;
- mib[1] = HW_CPUSPEED;
-
- size = sizeof(freq);
-
- if (sysctl(mib, 2, &freq, &size, NULL, 0) == -1) {
- fprintf(stderr, "sysctl 'HW_CPUSPEED': %s\n", strerror(errno));
- return NULL;
- }
-
- return bprintf("%d", freq);
-}
diff --git a/components/OpenBSD/entropy.c b/components/OpenBSD/entropy.c
deleted file mode 100644
index e69de29..0000000
--- a/components/OpenBSD/entropy.c
+++ /dev/null
diff --git a/components/OpenBSD/ram.c b/components/OpenBSD/ram.c
deleted file mode 100644
index f7c81d1..0000000
--- a/components/OpenBSD/ram.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* See LICENSE file for copyright and license details. */
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/sysctl.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include "../../util.h"
-
-inline int
-load_uvmexp(struct uvmexp *uvmexp)
-{
- int uvmexp_mib[] = {CTL_VM, VM_UVMEXP};
- size_t size;
-
- size = sizeof(*uvmexp);
-
- return sysctl(uvmexp_mib, 2, uvmexp, &size, NULL, 0) >= 0 ? 1 : 0;
-}
-
-const char *
-ram_free(void)
-{
- struct uvmexp uvmexp;
- float free;
- int free_pages;
-
- if (load_uvmexp(&uvmexp)) {
- free_pages = uvmexp.npages - uvmexp.active;
- free = (double) (free_pages * uvmexp.pagesize) / 1024 / 1024 / 1024;
- return bprintf("%f", free);
- }
-
- return NULL;
-}
-
-const char *
-ram_perc(void)
-{
- struct uvmexp uvmexp;
- int percent;
-
- if (load_uvmexp(&uvmexp)) {
- percent = uvmexp.active * 100 / uvmexp.npages;
- return bprintf("%d", percent);
- }
-
- return NULL;
-}
-
-const char *
-ram_total(void)
-{
- struct uvmexp uvmexp;
- float total;
-
- if (load_uvmexp(&uvmexp)) {
- total = (double) (uvmexp.npages * uvmexp.pagesize) / 1024 / 1024 / 1024;
- return bprintf("%f", total);
- }
-
- return NULL;
-}
-
-const char *
-ram_used(void)
-{
- struct uvmexp uvmexp;
- float used;
-
- if (load_uvmexp(&uvmexp)) {
- used = (double) (uvmexp.active * uvmexp.pagesize) / 1024 / 1024 / 1024;
- return bprintf("%f", used);
- }
-
- return NULL;
-}
diff --git a/components/OpenBSD/swap.c b/components/OpenBSD/swap.c
deleted file mode 100644
index e69de29..0000000
--- a/components/OpenBSD/swap.c
+++ /dev/null
diff --git a/components/OpenBSD/wifi.c b/components/OpenBSD/wifi.c
deleted file mode 100644
index e69de29..0000000
--- a/components/OpenBSD/wifi.c
+++ /dev/null
diff --git a/components/Linux/battery.c b/components/battery.c
index 654ddab..955d8ab 100644
--- a/components/Linux/battery.c
+++ b/components/battery.c
@@ -2,11 +2,19 @@
#include <errno.h>
#include <stdio.h>
#include <string.h>
+#if defined(__linux__)
#include <limits.h>
#include <string.h>
+#elif defined(__OpenBSD__)
+#include <sys/ioctl.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <machine/apmvar.h>
+#endif
-#include "../../util.h"
+#include "../util.h"
+#if defined(__linux__)
const char *
battery_perc(const char *bat)
{
@@ -17,7 +25,31 @@ battery_perc(const char *bat)
return (pscanf(path, "%i", &perc) == 1) ?
bprintf("%d", perc) : NULL;
}
+#elif defined(__OpenBSD__)
+const char *
+battery_perc(const char *null)
+{
+ struct apm_power_info apm_info;
+ int fd;
+
+ fd = open("/dev/apm", O_RDONLY);
+ if (fd < 0) {
+ fprintf(stderr, "open '/dev/apm': %s\n", strerror(errno));
+ return NULL;
+ }
+
+ if (ioctl(fd, APM_IOC_GETPOWER, &apm_info) < 0) {
+ fprintf(stderr, "ioctl 'APM_IOC_GETPOWER': %s\n", strerror(errno));
+ close(fd);
+ return NULL;
+ }
+ close(fd);
+
+ return bprintf("%d", apm_info.battery_life);
+}
+#endif
+#if defined(__linux__)
const char *
battery_power(const char *bat)
{
@@ -56,3 +88,4 @@ battery_state(const char *bat)
}
return (i == LEN(map)) ? "?" : map[i].symbol;
}
+#endif
diff --git a/components/Linux/cpu.c b/components/cpu.c
index bfc204c..11e2e98 100644
--- a/components/Linux/cpu.c
+++ b/components/cpu.c
@@ -2,9 +2,13 @@
#include <errno.h>
#include <stdio.h>
#include <string.h>
+#if defined(__OpenBSD__)
+#include <sys/sysctl.h>
+#endif
-#include "../../util.h"
+#include "../util.h"
+#if defined(__linux__)
const char *
cpu_freq(void)
{
@@ -62,3 +66,23 @@ cpu_iowait(void)
return bprintf("%d", perc);
}
+#elif defined(__OpenBSD__)
+const char *
+cpu_freq(void)
+{
+ int freq, mib[2];
+ size_t size;
+
+ mib[0] = CTL_HW;
+ mib[1] = HW_CPUSPEED;
+
+ size = sizeof(freq);
+
+ if (sysctl(mib, 2, &freq, &size, NULL, 0) == -1) {
+ fprintf(stderr, "sysctl 'HW_CPUSPEED': %s\n", strerror(errno));
+ return NULL;
+ }
+
+ return bprintf("%d", freq);
+}
+#endif
diff --git a/components/Linux/entropy.c b/components/entropy.c
index 17be270..65c65a1 100644
--- a/components/Linux/entropy.c
+++ b/components/entropy.c
@@ -1,7 +1,8 @@
/* See LICENSE file for copyright and license details. */
+#if defined(__linux__)
#include <stdio.h>
-#include "../../util.h"
+#include "../util.h"
const char *
entropy(void)
@@ -11,3 +12,4 @@ entropy(void)
return (pscanf("/proc/sys/kernel/random/entropy_avail", "%d", &num) == 1) ?
bprintf("%d", num) : NULL;
}
+#endif
diff --git a/components/ram.c b/components/ram.c
new file mode 100644
index 0000000..55ec5b9
--- /dev/null
+++ b/components/ram.c
@@ -0,0 +1,129 @@
+/* See LICENSE file for copyright and license details. */
+#include <stdio.h>
+#if defined (__OpenBSD__)
+#include <sys/types.h>
+#include <sys/sysctl.h>
+#include <stdlib.h>
+#include <unistd.h>
+#endif
+
+#include "../util.h"
+
+#if defined(__linux__)
+const char *
+ram_free(void)
+{
+ long free;
+
+ return (pscanf("/proc/meminfo", "MemFree: %ld kB\n", &free) == 1) ?
+ bprintf("%f", (float)free / 1024 / 1024) : NULL;
+}
+
+const char *
+ram_perc(void)
+{
+ long total, free, buffers, cached;
+
+ return (pscanf("/proc/meminfo",
+ "MemTotal: %ld kB\n"
+ "MemFree: %ld kB\n"
+ "MemAvailable: %ld kB\nBuffers: %ld kB\n"
+ "Cached: %ld kB\n",
+ &total, &free, &buffers, &buffers, &cached) == 5) ?
+ bprintf("%d", 100 * ((total - free) - (buffers + cached)) / total) :
+ NULL;
+}
+
+const char *
+ram_total(void)
+{
+ long total;
+
+ return (pscanf("/proc/meminfo", "MemTotal: %ld kB\n", &total) == 1) ?
+ bprintf("%f", (float)total / 1024 / 1024) : NULL;
+}
+
+const char *
+ram_used(void)
+{
+ long total, free, buffers, cached;
+
+ return (pscanf("/proc/meminfo",
+ "MemTotal: %ld kB\n"
+ "MemFree: %ld kB\n"
+ "MemAvailable: %ld kB\nBuffers: %ld kB\n"
+ "Cached: %ld kB\n",
+ &total, &free, &buffers, &buffers, &cached) == 5) ?
+ bprintf("%f", (float)(total - free - buffers - cached) / 1024 / 1024) :
+ NULL;
+}
+#elif defined(__OpenBSD__)
+inline int
+load_uvmexp(struct uvmexp *uvmexp)
+{
+ int uvmexp_mib[] = {CTL_VM, VM_UVMEXP};
+ size_t size;
+
+ size = sizeof(*uvmexp);
+
+ return sysctl(uvmexp_mib, 2, uvmexp, &size, NULL, 0) >= 0 ? 1 : 0;
+}
+
+const char *
+ram_free(void)
+{
+ struct uvmexp uvmexp;
+ float free;
+ int free_pages;
+
+ if (load_uvmexp(&uvmexp)) {
+ free_pages = uvmexp.npages - uvmexp.active;
+ free = (double) (free_pages * uvmexp.pagesize) / 1024 / 1024 / 1024;
+ return bprintf("%f", free);
+ }
+
+ return NULL;
+}
+
+const char *
+ram_perc(void)
+{
+ struct uvmexp uvmexp;
+ int percent;
+
+ if (load_uvmexp(&uvmexp)) {
+ percent = uvmexp.active * 100 / uvmexp.npages;
+ return bprintf("%d", percent);
+ }
+
+ return NULL;
+}
+
+const char *
+ram_total(void)
+{
+ struct uvmexp uvmexp;
+ float total;
+
+ if (load_uvmexp(&uvmexp)) {
+ total = (double) (uvmexp.npages * uvmexp.pagesize) / 1024 / 1024 / 1024;
+ return bprintf("%f", total);
+ }
+
+ return NULL;
+}
+
+const char *
+ram_used(void)
+{
+ struct uvmexp uvmexp;
+ float used;
+
+ if (load_uvmexp(&uvmexp)) {
+ used = (double) (uvmexp.active * uvmexp.pagesize) / 1024 / 1024 / 1024;
+ return bprintf("%f", used);
+ }
+
+ return NULL;
+}
+#endif
diff --git a/components/Linux/swap.c b/components/swap.c
index bce9d5a..f3bbeb2 100644
--- a/components/Linux/swap.c
+++ b/components/swap.c
@@ -1,9 +1,10 @@
/* See LICENSE file for copyright and license details. */
+#if defined(__linux__)
#include <errno.h>
#include <stdio.h>
#include <string.h>
-#include "../../util.h"
+#include "../util.h"
const char *
swap_free(void)
@@ -134,3 +135,4 @@ swap_used(void)
return bprintf("%f", (float)(total - free - cached) / 1024 / 1024);
}
+#endif
diff --git a/components/OpenBSD/temperature.c b/components/temperature.c
index 8098868..e2c6a77 100644
--- a/components/OpenBSD/temperature.c
+++ b/components/temperature.c
@@ -2,12 +2,24 @@
#include <errno.h>
#include <stdio.h>
#include <string.h>
+#if defined(__OpenBSD__)
#include <sys/sysctl.h>
#include <sys/time.h>
#include <sys/sensors.h>
+#endif
-#include "../../util.h"
+#include "../util.h"
+#if defined(__linux__)
+const char *
+temp(const char *file)
+{
+ int temp;
+
+ return (pscanf(file, "%d", &temp) == 1) ?
+ bprintf("%d", temp / 1000) : NULL;
+}
+#elif defined(__OpenBSD__)
const char *
temp(const char *null)
{
@@ -30,3 +42,4 @@ temp(const char *null)
return bprintf("%d", (temp.value - 273150000) / 1000000); /* kelvin to celsius */
}
+#endif
diff --git a/components/OpenBSD/uptime.c b/components/uptime.c
index 637e2e0..debe4cb 100644
--- a/components/OpenBSD/uptime.c
+++ b/components/uptime.c
@@ -2,11 +2,33 @@
#include <errno.h>
#include <stdio.h>
#include <string.h>
+#if defined(__linux__)
+#include <sys/sysinfo.h>
+#elif defined(__OpenBSD__)
#include <sys/sysctl.h>
#include <sys/time.h>
+#endif
-#include "../../util.h"
+#include "../util.h"
+#if defined(__linux__)
+const char *
+uptime(void)
+{
+ int h;
+ int m;
+ int uptime = 0;
+ struct sysinfo info;
+
+ sysinfo(&info);
+ uptime = info.uptime;
+
+ h = uptime / 3600;
+ m = (uptime - h * 3600) / 60;
+
+ return bprintf("%dh %dm", h, m);
+}
+#elif defined(__OpenBSD__)
const char *
uptime(void)
{
@@ -38,3 +60,4 @@ uptime(void)
return bprintf("%dh %dm", h, m);
}
+#endif
diff --git a/components/Linux/wifi.c b/components/wifi.c
index e86fcbc..388a30d 100644
--- a/components/Linux/wifi.c
+++ b/components/wifi.c
@@ -1,4 +1,5 @@
/* See LICENSE file for copyright and license details. */
+#if defined(__linux__)
#include <errno.h>
#include <ifaddrs.h>
#include <linux/wireless.h>
@@ -9,7 +10,7 @@
#include <sys/ioctl.h>
#include <unistd.h>
-#include "../../util.h"
+#include "../util.h"
const char *
wifi_perc(const char *iface)
@@ -88,3 +89,4 @@ wifi_essid(const char *iface)
else
return id;
}
+#endif
diff --git a/config.mk b/config.mk
index 6fbf696..a148da4 100644
--- a/config.mk
+++ b/config.mk
@@ -4,13 +4,20 @@ VERSION = 0
# customize below to fit your system
# paths
-PREFIX = /usr/local
+PREFIX = /usr/local
MANPREFIX = ${PREFIX}/share/man
X11INC = /usr/X11R6/include
X11LIB = /usr/X11R6/lib
+# OpenBSD (uncomment)
+#OSSLIBS = -lossaudio
+
# flags
+CPPFLAGS = -I$(X11INC) -D_DEFAULT_SOURCE
CFLAGS = -std=c99 -pedantic -Wall -Wextra -Os
-LDFLAGS = -s
-LIBS =
+LDFLAGS = -L$(X11LIB) -s
+LDLIBS = -lX11 ${OSSLIBS}
+
+# compiler and linker
+CC = cc
diff --git a/configure b/configure
deleted file mode 100755
index 2a510c7..0000000
--- a/configure
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-os="$(uname)"
-
-printf 'OS = %s\n' "$os" > os.mk
-
-if [ "$os" = "OpenBSD" ]
-then
- printf 'OSLIBS = -lossaudio\n' >> os.mk
-fi