git: 2daebd564b73 - main - x11/bosd: new port
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 14 Sep 2026 18:02:20 UTC
The branch main has been updated by dteske:
URL: https://cgit.FreeBSD.org/ports/commit/?id=2daebd564b731ecf5b81f70cc02d51a29aa40421
commit 2daebd564b731ecf5b81f70cc02d51a29aa40421
Author: Devin Teske <dteske@FreeBSD.org>
AuthorDate: 2026-09-14 17:59:12 +0000
Commit: Devin Teske <dteske@FreeBSD.org>
CommitDate: 2026-09-14 17:59:12 +0000
x11/bosd: new port
X11 on-screen display engine: PNG glyphs, countdown digits,
outlined text, and a gauge bar. A warm daemon per channel
repaints in place.
Approved by: fuz (mentor)
Reviewed by: fuz (mentor), jrm (co-mentor; previous revision)
Differential Revision: https://reviews.freebsd.org/D59517
---
x11/Makefile | 1 +
x11/bosd/Makefile | 44 ++++++++++++++++++++++++++++++++++++++
x11/bosd/distinfo | 3 +++
x11/bosd/pkg-descr | 4 ++++
x11/bosd/pkg-plist | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 115 insertions(+)
diff --git a/x11/Makefile b/x11/Makefile
index 132addfbbbc6..b0e60f42715e 100644
--- a/x11/Makefile
+++ b/x11/Makefile
@@ -31,6 +31,7 @@
SUBDIR += bitmap
SUBDIR += bmpanel2
SUBDIR += boomer
+ SUBDIR += bosd
SUBDIR += brisk-menu
SUBDIR += budgie
SUBDIR += budgie-desktop
diff --git a/x11/bosd/Makefile b/x11/bosd/Makefile
new file mode 100644
index 000000000000..7fec46aa4127
--- /dev/null
+++ b/x11/bosd/Makefile
@@ -0,0 +1,44 @@
+PORTNAME= bosd
+DISTVERSION= 10.2
+CATEGORIES= x11
+
+MAINTAINER= dteske@FreeBSD.org
+COMMENT= X11 on-screen display engine
+
+LICENSE= BSD2CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \
+ libpng16.so:graphics/png
+
+USES= localbase:ldflags pkgconfig python:build,run shebangfix xorg
+USE_GITHUB= yes
+GH_ACCOUNT= FrauBSD
+USE_LDCONFIG= yes
+USE_XORG= x11 xext xft xrandr xrender
+
+SHEBANG_FILES= examples/bsd.py tools/glyph.py
+
+# FreeBSD keeps .pc files under libdata/pkgconfig.
+# PYTHON= drives the example glyph build (no bare python3 on PATH).
+MAKE_ARGS= PKGCONFIGDIR="${PREFIX}/libdata/pkgconfig" \
+ PYTHON="${PYTHON_CMD}"
+ALL_TARGET= all example
+
+OPTIONS_DEFINE= TESTS
+OPTIONS_DEFAULT= TESTS
+OPTIONS_SUB= yes
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MTESTS}
+MAKE_ARGS+= INSTALL_TESTS=yes
+.else
+MAKE_ARGS+= INSTALL_TESTS=no
+.endif
+
+post-install:
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/bosd \
+ ${STAGEDIR}${PREFIX}/lib/libbosd.so.4
+
+.include <bsd.port.mk>
diff --git a/x11/bosd/distinfo b/x11/bosd/distinfo
new file mode 100644
index 000000000000..bcfdf0fee366
--- /dev/null
+++ b/x11/bosd/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1789332155
+SHA256 (FrauBSD-bosd-10.2_GH0.tar.gz) = 68dca36419f353de5269cc3ed58dcf22f3a70c5e3478d6e38c7c3169f60935ff
+SIZE (FrauBSD-bosd-10.2_GH0.tar.gz) = 64919
diff --git a/x11/bosd/pkg-descr b/x11/bosd/pkg-descr
new file mode 100644
index 000000000000..abc2b3b2c581
--- /dev/null
+++ b/x11/bosd/pkg-descr
@@ -0,0 +1,4 @@
+bosd flashes transient, click-through feedback over the desktop: a
+PNG glyph, countdown digits, large or small outlined text, or a
+gauge bar. A warm daemon per channel repaints in place so rapid
+key repeats never flash.
diff --git a/x11/bosd/pkg-plist b/x11/bosd/pkg-plist
new file mode 100644
index 000000000000..08d537144af1
--- /dev/null
+++ b/x11/bosd/pkg-plist
@@ -0,0 +1,63 @@
+bin/bosd
+include/bosd.h
+lib/libbosd.so
+lib/libbosd.so.4
+libdata/pkgconfig/bosd.pc
+share/bosd/bsd.png
+share/doc/bosd/README.md
+share/examples/bosd/bsd.py
+share/examples/bosd/glyph.py
+share/man/man1/bosd.1.gz
+share/man/man3/bosd.3.gz
+%%TESTS%%share/bosd/tests/run
+%%TESTS%%share/bosd/tests/bar_01.sh
+%%TESTS%%share/bosd/tests/bar_02_alpha.sh
+%%TESTS%%share/bosd/tests/bar_03_no_outline.sh
+%%TESTS%%share/bosd/tests/bar_04_overage.sh
+%%TESTS%%share/bosd/tests/bar_05_offsets.sh
+%%TESTS%%share/bosd/tests/bar_06_color.sh
+%%TESTS%%share/bosd/tests/bar_07_prev.sh
+%%TESTS%%share/bosd/tests/bar_08_captions.sh
+%%TESTS%%share/bosd/tests/bar_09_face.sh
+%%TESTS%%share/bosd/tests/bar_10_caption_alpha.sh
+%%TESTS%%share/bosd/tests/bar_11_scale.sh
+%%TESTS%%share/bosd/tests/coexist_01.sh
+%%TESTS%%share/bosd/tests/coexist_02_icon_bar.sh
+%%TESTS%%share/bosd/tests/coexist_03_countdown_bar.sh
+%%TESTS%%share/bosd/tests/coexist_04_htext_bar.sh
+%%TESTS%%share/bosd/tests/coexist_05_icon_captions_bar.sh
+%%TESTS%%share/bosd/tests/coexist_06_countdown_captions_bar.sh
+%%TESTS%%share/bosd/tests/coexist_07_htext_captions_bar.sh
+%%TESTS%%share/bosd/tests/countdown_01.sh
+%%TESTS%%share/bosd/tests/countdown_02.sh
+%%TESTS%%share/bosd/tests/countdown_03_scale_adorn.sh
+%%TESTS%%share/bosd/tests/htext_01.sh
+%%TESTS%%share/bosd/tests/htext_02_alpha.sh
+%%TESTS%%share/bosd/tests/htext_03_offsets.sh
+%%TESTS%%share/bosd/tests/htext_04_checkmark.sh
+%%TESTS%%share/bosd/tests/htext_05_badge.sh
+%%TESTS%%share/bosd/tests/htext_06_color_badge.sh
+%%TESTS%%share/bosd/tests/htext_07_face_badge.sh
+%%TESTS%%share/bosd/tests/htext_08_scale.sh
+%%TESTS%%share/bosd/tests/htext_09_scale_badge.sh
+%%TESTS%%share/bosd/tests/icon_01.sh
+%%TESTS%%share/bosd/tests/icon_02_badge.sh
+%%TESTS%%share/bosd/tests/icon_03_scale.sh
+%%TESTS%%share/bosd/tests/icon_04_scale_badge.sh
+%%TESTS%%share/bosd/tests/icon_05_alpha.sh
+%%TESTS%%share/bosd/tests/icon_06_outline_alpha.sh
+%%TESTS%%share/bosd/tests/icon_07_below.sh
+%%TESTS%%share/bosd/tests/icon_08_above.sh
+%%TESTS%%share/bosd/tests/icon_09_offsets.sh
+%%TESTS%%share/bosd/tests/icon_10_color.sh
+%%TESTS%%share/bosd/tests/icon_11_face.sh
+%%TESTS%%share/bosd/tests/lib.sh
+%%TESTS%%share/bosd/tests/stext_01.sh
+%%TESTS%%share/bosd/tests/stext_02_alpha.sh
+%%TESTS%%share/bosd/tests/stext_03_no_outline.sh
+%%TESTS%%share/bosd/tests/stext_04_color.sh
+%%TESTS%%share/bosd/tests/stext_05_face.sh
+%%TESTS%%share/bosd/tests/stext_06_scale.sh
+%%TESTS%%share/bosd/tests/stext_07_offsets.sh
+%%TESTS%%share/bosd/tests/stext_08_newline.sh
+%%TESTS%%share/bosd/tests/stext_09_space.sh