Compare commits

..

10 Commits

8 changed files with 42 additions and 68 deletions

8
.gitignore vendored
View File

@ -1,7 +1,3 @@
blocks.h
dwmblocks
dwmblocks-pulse-listener
dwmblocks-*.pkg.tar.*
src/
pkg/
scripts.tar
config.mk
blocks.h

View File

@ -1,34 +1,23 @@
PREFIX := /usr/local
CC := cc
CFLAGS := -pedantic -Wall -Wno-deprecated-declarations -Os
LDFLAGS := -lX11
PULSEFLAGS := -lpulse
NO_X := 0
ifeq ($(NO_X), 1)
CFLAGS := $(CFLAGS) -DNO_X
endif
# FreeBSD (uncomment)
#LDFLAGS += -L/usr/local/lib -I/usr/local/include
# # OpenBSD (uncomment)
#LDFLAGS += -L/usr/X11R6/lib -I/usr/X11R6/include
include config.mk
all: options dwmblocks
options:
@echo dwmblocks build options:
@echo "CFLAGS = ${CFLAGS}"
@echo "CFLAGS = ${CFLAGS} ${NO_X}"
@echo "LDFLAGS = ${LDFLAGS}"
@echo "CC = ${CC}"
@echo "PULSEFLAGS = ${PULSEFLAGS}"
dwmblocks: dwmblocks.c pulse-listener.c blocks.def.h blocks.h
${CC} -o dwmblocks dwmblocks.c pulse-listener.c ${CFLAGS} ${PULSEFLAGS} ${LDFLAGS}
${CC} ${NO_X} -o dwmblocks dwmblocks.c pulse-listener.c ${CFLAGS} ${PULSEFLAGS} ${LDFLAGS}
blocks.h:
cp blocks.def.h $@
config.mk:
cp config.def.mk $@
clean:
rm -f *.o *.gch dwmblocks
@ -43,6 +32,7 @@ uninstall:
${DESTDIR}${PREFIX}/bin/dwmblocks-battery \
${DESTDIR}${PREFIX}/bin/dwmblocks-network \
${DESTDIR}${PREFIX}/bin/dwmblocks-volume \
${DESTDIR}${PREFIX}/bin/dwmblocks-fcitx5
${DESTDIR}${PREFIX}/bin/dwmblocks-fcitx5 \
${DESTDIR}${PREFIX}/bin/dwmblocks-mu4e
.PHONY: all options clean install uninstall

View File

@ -1,40 +0,0 @@
# Maintainer: Alexander Rosenberg <zanderpkg at pm dot me>
pkgname=dwmblocks
pkgver=1
pkgrel=1
pkgdesc='Modular status bar for dwm'
url='https://git.zander.im/Zander671/dwmblocks/'
arch=('x86_64')
license=('custom:ISC')
depends=('libx11')
optdepends=('pulseaudio: for dwmblocks-pulse-listener'
'pamixer: for dwmblocks-volume'
'networkmanager: for dwmblocks-network internet'
'bluez-utils: for dwmblocks-network bluetooth')
DLAGENTS=('tar::/bin/sh -c echo\ %u\ |\ cut\ -c7-\ |\ head\ -c-5\ |\ xargs\ -Isrc\ -n\ 1\ tar\ -cf\ %o\ src')
source=('dwmblocks.c'
'dwmblocks-pulse-listener.c'
'LICENSE'
'README.md'
'Makefile'
'blocks.h'
'tar://scripts.tar')
sha256sums=('SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP')
build() {
cp blocks.h blocks.def.h
make
}
package() {
make DESTDIR="$pkgdir" PREFIX='/usr' install
install -m 0644 -Dt "$pkgdir/usr/share/doc/dwmblocks" 'README.md'
install -m 0644 -Dt "$pkgdir/usr/share/licenses/dwmblocks" 'LICENSE'
}

View File

@ -3,13 +3,22 @@
static const Block blocks[] = {
/*Icon*/ /*Command*/ /*Update Interval*/ /*Update Signal*/
{"", "dwmblocks-battery", SECONDS(10), 0},
// {"", "dwmblocks-battery", SECONDS(10), 0},
{"", "[ \"$(fcitx5-remote)\" -eq 2 ] && printf '和' || printf '英'", 0, 2},
{"", "dwmblocks-mu4e", SECONDS(15), 0},
{"", "dwmblocks-volume", 0, 1},
{"", "date +'%a %b %d'", SECONDS(30), 0},
{"", "date +'%R'", SECONDS(2), 0},
{"", "dwmblocks-network", SECONDS(5), 0},
//{"", "dwmblocks-fcitx5", 250, 0},
};
#include "pulse-listener.h"
static const ThreadCallback thread_callbacks[] = {
pulse_listener_main
};
// sets delimeter between status commands. NULL character ('\0') means no delimeter.
static char delim[] = " ";
static unsigned int delimLen = 5;
static unsigned int delimLen = 2;

14
config.def.mk Normal file
View File

@ -0,0 +1,14 @@
PREFIX := /usr/local
CC := cc
CFLAGS := -pedantic -Wall -Wno-deprecated-declarations -Os
LDFLAGS := -lX11
PULSEFLAGS := -lpulse
NO_X =
# Uncomment to build without X11
# NO_X = -DNO_X
# FreeBSD (uncomment)
#LDFLAGS += -L/usr/local/lib -I/usr/local/include
# OpenBSD (uncomment)
#LDFLAGS += -L/usr/X11R6/lib -I/usr/X11R6/include

View File

@ -72,6 +72,7 @@ static void cleanup(void *data_to_free[2]) {
}
void pulse_listener_main(pthread_t *main_thread) {
pthread_setcanceltype(PTHREAD_CANCEL_DISABLE, NULL);
pa_mainloop *mainloop = pa_mainloop_new();
if (!mainloop) {
ERROR("could not create pulse mainloop\n");
@ -91,11 +92,12 @@ void pulse_listener_main(pthread_t *main_thread) {
(pa_context_notify_cb_t)&state_callback,
main_thread);
if (pa_context_connect(context, NULL, PA_CONTEXT_NOAUTOSPAWN, NULL) < 0) {
ERROR("could not connect to pulse");
ERROR("could not connect to pulse\n");
return;
}
void *data_to_free[2] = { mainloop, context };
pthread_cleanup_push((void(*)(void *)) cleanup, data_to_free);
pthread_setcanceltype(PTHREAD_CANCEL_ENABLE, NULL);
pa_mainloop_run(mainloop, NULL);
pthread_cleanup_pop(1);
}

3
scripts/dwmblocks-mu4e Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env zsh
let message_count="$(mu find flag:unread AND maildir:/protonmail/Inbox 2>/dev/null | wc -l)"
(( "${message_count}" > 0 )) && printf ' %s' "${message_count}"