git: 9f4e6185484f - main - x11/mangobar: Add new port

From: Nicola Vitale <nivit_at_FreeBSD.org>
Date: Mon, 07 Sep 2026 08:55:31 UTC
The branch main has been updated by nivit:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9f4e6185484f842515b4ed878f3702d0235ceee5

commit 9f4e6185484f842515b4ed878f3702d0235ceee5
Author:     Nicola Vitale <nivit@FreeBSD.org>
AuthorDate: 2026-09-07 08:53:19 +0000
Commit:     Nicola Vitale <nivit@FreeBSD.org>
CommitDate: 2026-09-07 08:53:19 +0000

    x11/mangobar: Add new port
    
    Mangobar is a Wayland status bar for mangowm, built on wlr-layer-shell. It
    reads all of its runtime settings from JSONC and CSS; there are no hard-coded
    module defaults beyond sample files.
    The system tray (StatusNotifierItem / DBusMenu) is inspired by swaybar and
    waybar.
    
    https://github.com/mangowm/mangobar
---
 x11/Makefile                          |  1 +
 x11/mangobar/Makefile                 | 40 +++++++++++++++++++++++++++++++++++
 x11/mangobar/distinfo                 |  3 +++
 x11/mangobar/files/patch-config.jsonc | 22 +++++++++++++++++++
 x11/mangobar/files/patch-mangobar.c   | 14 ++++++++++++
 x11/mangobar/files/patch-meson.build  | 14 ++++++++++++
 x11/mangobar/files/pkg-message.in     | 13 ++++++++++++
 x11/mangobar/pkg-descr                |  5 +++++
 8 files changed, 112 insertions(+)

diff --git a/x11/Makefile b/x11/Makefile
index 73ec185a8ee4..132addfbbbc6 100644
--- a/x11/Makefile
+++ b/x11/Makefile
@@ -280,6 +280,7 @@
     SUBDIR += lxrandr
     SUBDIR += ly
     SUBDIR += mako
+    SUBDIR += mangobar
     SUBDIR += mate
     SUBDIR += mate-applet-appmenu
     SUBDIR += mate-applets
diff --git a/x11/mangobar/Makefile b/x11/mangobar/Makefile
new file mode 100644
index 000000000000..64f360fd944f
--- /dev/null
+++ b/x11/mangobar/Makefile
@@ -0,0 +1,40 @@
+PORTNAME=	mangobar
+DISTVERSION=	0.2.1
+CATEGORIES=	x11
+
+MAINTAINER=	nivit@FreeBSD.org
+COMMENT=	Simple bar for x11-wm/mango
+WWW=		https://github.com/mangowm/mangobar
+
+LICENSE=	GPLv3
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	tllist>=1.1.0:devel/tllist \
+		wayland-protocols>=1.24:graphics/wayland-protocols \
+		wayland-scanner:graphics/wayland
+LIB_DEPENDS=	libasound.so:audio/alsa-lib \
+		libbasu.so:devel/basu \
+		libcjson.so:devel/libcjson \
+		libfcft.so:x11-fonts/fcft \
+		libpixman-1.so:x11/pixman \
+		libpulse.so:audio/pulseaudio \
+		libudev.so:devel/libudev-devd \
+		libwayland-server.so:graphics/wayland
+
+USES=		gnome meson ninja pkgconfig
+USE_GITHUB=	yes
+GH_ACCOUNT=	mangowm
+USE_GNOME=	cairo gdkpixbuf pango
+
+SUB_FILES=	pkg-message
+
+PLIST_FILES=	bin/mangobar \
+		share/mangobar/config.jsonc \
+		share/mangobar/style.css
+
+post-install:
+	${MKDIR} ${STAGEDIR}${DATADIR}
+	${INSTALL_DATA} ${WRKSRC}/config.jsonc ${STAGEDIR}${DATADIR}/
+	${INSTALL_DATA} ${WRKSRC}/style.css ${STAGEDIR}${DATADIR}/
+
+.include <bsd.port.mk>
diff --git a/x11/mangobar/distinfo b/x11/mangobar/distinfo
new file mode 100644
index 000000000000..ed44c067bd40
--- /dev/null
+++ b/x11/mangobar/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1788363531
+SHA256 (mangowm-mangobar-0.2.1_GH0.tar.gz) = 83ace53cca7b0702baee0453998e8ac2ca9f7e3033737ce617df18bff8a37613
+SIZE (mangowm-mangobar-0.2.1_GH0.tar.gz) = 87378
diff --git a/x11/mangobar/files/patch-config.jsonc b/x11/mangobar/files/patch-config.jsonc
new file mode 100644
index 000000000000..dd0f1a18d665
--- /dev/null
+++ b/x11/mangobar/files/patch-config.jsonc
@@ -0,0 +1,22 @@
+--- config.jsonc.orig	2026-09-01 09:23:05 UTC
++++ config.jsonc
+@@ -15,14 +15,14 @@
+     "modules-right": [
+         "hideclients",
+         "tray",
+-        "network",
++        // "network",
+         // "keymode",
+         // "keyboardlayout",
+-        "cpu",
+-        "memory",
++        // "cpu",
++        // "memory",
+         "pulseaudio",
+-        "backlight",
+-        "battery",
++        // "backlight",
++        // "battery",
+         "clock#date",
+         "clock#time",
+         "custom/power"
diff --git a/x11/mangobar/files/patch-mangobar.c b/x11/mangobar/files/patch-mangobar.c
new file mode 100644
index 000000000000..999e947f245c
--- /dev/null
+++ b/x11/mangobar/files/patch-mangobar.c
@@ -0,0 +1,14 @@
+--- mangobar.c.orig	2026-09-01 09:23:05 UTC
++++ mangobar.c
+@@ -10,7 +10,11 @@
+ #include <fcft/fcft.h>
+ #include <fcntl.h>
+ #include <locale.h>
++#ifdef __FreeBSD__
++#include <dev/evdev/input-event-codes.h>
++#else
+ #include <linux/input-event-codes.h>
++#endif
+ #include <libudev.h>
+ #include <pixman.h>
+ #include <poll.h>
diff --git a/x11/mangobar/files/patch-meson.build b/x11/mangobar/files/patch-meson.build
new file mode 100644
index 000000000000..00e744154494
--- /dev/null
+++ b/x11/mangobar/files/patch-meson.build
@@ -0,0 +1,14 @@
+--- meson.build.orig	2026-09-01 09:23:05 UTC
++++ meson.build
+@@ -22,10 +22,10 @@ deps = [
+   dependency('libpulse'),
+   sdbus_dep,
+   dependency('libudev'),
++  dependency('libcjson'),
+   dependency('gdk-pixbuf-2.0'),
+   dependency('alsa'),
+   cc.find_library('rt'),
+-  cc.find_library('cjson'),
+ ]
+ 
+ scanner = find_program('wayland-scanner')
diff --git a/x11/mangobar/files/pkg-message.in b/x11/mangobar/files/pkg-message.in
new file mode 100644
index 000000000000..f6ff47ed2b4e
--- /dev/null
+++ b/x11/mangobar/files/pkg-message.in
@@ -0,0 +1,13 @@
+[
+{ type: install
+  message: <<EOM
+Before using mangobar run the following commands as user:
+
+    mkdir -p ~/.config/mangobar
+    cp %%DATADIR%%/config.jsonc ~/.config/mangobar/config.jsonc
+    cp %%DATADIR%%/style.css ~/.config/mangobar/style.css
+
+then customize those files.
+EOM
+}
+]
diff --git a/x11/mangobar/pkg-descr b/x11/mangobar/pkg-descr
new file mode 100644
index 000000000000..f2d2bc3e003a
--- /dev/null
+++ b/x11/mangobar/pkg-descr
@@ -0,0 +1,5 @@
+Mangobar is a Wayland status bar for mangowm, built on wlr-layer-shell. It
+reads all of its runtime settings from JSONC and CSS; there are no hard-coded
+module defaults beyond sample files.
+The system tray (StatusNotifierItem / DBusMenu) is inspired by swaybar and
+waybar.