Compare commits
10 Commits
cc78fe00af
...
main
Author | SHA1 | Date | |
---|---|---|---|
ee01830c33
|
|||
cef428daea
|
|||
cf2d0ed30e
|
|||
bb55ac56dd
|
|||
e911dd7095
|
|||
ae08d6f2ce
|
|||
3b0049fed5
|
|||
4aaf17b26a
|
|||
316e32a6a5
|
|||
89073bf8bd
|
8
.gitignore
vendored
8
.gitignore
vendored
@ -1,7 +1,3 @@
|
|||||||
blocks.h
|
|
||||||
dwmblocks
|
dwmblocks
|
||||||
dwmblocks-pulse-listener
|
config.mk
|
||||||
dwmblocks-*.pkg.tar.*
|
blocks.h
|
||||||
src/
|
|
||||||
pkg/
|
|
||||||
scripts.tar
|
|
||||||
|
26
Makefile
26
Makefile
@ -1,34 +1,23 @@
|
|||||||
PREFIX := /usr/local
|
include config.mk
|
||||||
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
|
|
||||||
|
|
||||||
all: options dwmblocks
|
all: options dwmblocks
|
||||||
|
|
||||||
options:
|
options:
|
||||||
@echo dwmblocks build options:
|
@echo dwmblocks build options:
|
||||||
@echo "CFLAGS = ${CFLAGS}"
|
@echo "CFLAGS = ${CFLAGS} ${NO_X}"
|
||||||
@echo "LDFLAGS = ${LDFLAGS}"
|
@echo "LDFLAGS = ${LDFLAGS}"
|
||||||
@echo "CC = ${CC}"
|
@echo "CC = ${CC}"
|
||||||
@echo "PULSEFLAGS = ${PULSEFLAGS}"
|
@echo "PULSEFLAGS = ${PULSEFLAGS}"
|
||||||
|
|
||||||
dwmblocks: dwmblocks.c pulse-listener.c blocks.def.h blocks.h
|
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:
|
blocks.h:
|
||||||
cp blocks.def.h $@
|
cp blocks.def.h $@
|
||||||
|
|
||||||
|
config.mk:
|
||||||
|
cp config.def.mk $@
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o *.gch dwmblocks
|
rm -f *.o *.gch dwmblocks
|
||||||
|
|
||||||
@ -43,6 +32,7 @@ uninstall:
|
|||||||
${DESTDIR}${PREFIX}/bin/dwmblocks-battery \
|
${DESTDIR}${PREFIX}/bin/dwmblocks-battery \
|
||||||
${DESTDIR}${PREFIX}/bin/dwmblocks-network \
|
${DESTDIR}${PREFIX}/bin/dwmblocks-network \
|
||||||
${DESTDIR}${PREFIX}/bin/dwmblocks-volume \
|
${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
|
.PHONY: all options clean install uninstall
|
||||||
|
40
PKGBUILD
40
PKGBUILD
@ -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'
|
|
||||||
}
|
|
13
blocks.def.h
13
blocks.def.h
@ -3,13 +3,22 @@
|
|||||||
|
|
||||||
static const Block blocks[] = {
|
static const Block blocks[] = {
|
||||||
/*Icon*/ /*Command*/ /*Update Interval*/ /*Update Signal*/
|
/*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},
|
{"", "dwmblocks-volume", 0, 1},
|
||||||
{" ", "date +'%a %b %d'", SECONDS(30), 0},
|
{" ", "date +'%a %b %d'", SECONDS(30), 0},
|
||||||
{" ", "date +'%R'", SECONDS(2), 0},
|
{" ", "date +'%R'", SECONDS(2), 0},
|
||||||
{"", "dwmblocks-network", SECONDS(5), 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.
|
// sets delimeter between status commands. NULL character ('\0') means no delimeter.
|
||||||
static char delim[] = " ";
|
static char delim[] = " ";
|
||||||
static unsigned int delimLen = 5;
|
static unsigned int delimLen = 2;
|
||||||
|
14
config.def.mk
Normal file
14
config.def.mk
Normal 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
|
@ -72,6 +72,7 @@ static void cleanup(void *data_to_free[2]) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void pulse_listener_main(pthread_t *main_thread) {
|
void pulse_listener_main(pthread_t *main_thread) {
|
||||||
|
pthread_setcanceltype(PTHREAD_CANCEL_DISABLE, NULL);
|
||||||
pa_mainloop *mainloop = pa_mainloop_new();
|
pa_mainloop *mainloop = pa_mainloop_new();
|
||||||
if (!mainloop) {
|
if (!mainloop) {
|
||||||
ERROR("could not create pulse mainloop\n");
|
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,
|
(pa_context_notify_cb_t)&state_callback,
|
||||||
main_thread);
|
main_thread);
|
||||||
if (pa_context_connect(context, NULL, PA_CONTEXT_NOAUTOSPAWN, NULL) < 0) {
|
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;
|
return;
|
||||||
}
|
}
|
||||||
void *data_to_free[2] = { mainloop, context };
|
void *data_to_free[2] = { mainloop, context };
|
||||||
pthread_cleanup_push((void(*)(void *)) cleanup, data_to_free);
|
pthread_cleanup_push((void(*)(void *)) cleanup, data_to_free);
|
||||||
|
pthread_setcanceltype(PTHREAD_CANCEL_ENABLE, NULL);
|
||||||
pa_mainloop_run(mainloop, NULL);
|
pa_mainloop_run(mainloop, NULL);
|
||||||
pthread_cleanup_pop(1);
|
pthread_cleanup_pop(1);
|
||||||
}
|
}
|
||||||
|
3
scripts/dwmblocks-mu4e
Executable file
3
scripts/dwmblocks-mu4e
Executable 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}"
|
@ -7,7 +7,7 @@ if [[ "$(uname)" = 'Linux' ]]; then
|
|||||||
[[ "${active_networks}" = *' ethernet '* ]] && output="${output}"
|
[[ "${active_networks}" = *' ethernet '* ]] && output="${output}"
|
||||||
[[ "${active_networks}" = *' wireguard '* ]] && output="${output} "
|
[[ "${active_networks}" = *' wireguard '* ]] && output="${output} "
|
||||||
(( ${#output} == 0 )) && output=''
|
(( ${#output} == 0 )) && output=''
|
||||||
bluetoothctl show | grep 'Powered: yes' >/dev/null && output="${output} "
|
bluetoothctl show | grep 'Powered: yes' >/dev/null && output="${output} "
|
||||||
printf '%s\n' "${output}"
|
printf '%s\n' "${output}"
|
||||||
else
|
else
|
||||||
echo "${0}: error: unknown os: \"$(uname)\"" >&2
|
echo "${0}: error: unknown os: \"$(uname)\"" >&2
|
||||||
|
Reference in New Issue
Block a user