git: 16d37ed29b93 - main - deskutils/py-mss: New port: Cross-platform multiple screenshots module in pure python using ctypes

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Fri, 17 Apr 2026 08:26:02 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=16d37ed29b9334df8c373b194f54253de4b44fb2

commit 16d37ed29b9334df8c373b194f54253de4b44fb2
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-04-17 08:25:47 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-04-17 08:25:57 +0000

    deskutils/py-mss: New port: Cross-platform multiple screenshots module in pure python using ctypes
---
 deskutils/Makefile         |  1 +
 deskutils/py-mss/Makefile  | 22 ++++++++++++++++++++++
 deskutils/py-mss/distinfo  |  3 +++
 deskutils/py-mss/pkg-descr | 13 +++++++++++++
 4 files changed, 39 insertions(+)

diff --git a/deskutils/Makefile b/deskutils/Makefile
index 1b318c6fe631..2d37c1b9348e 100644
--- a/deskutils/Makefile
+++ b/deskutils/Makefile
@@ -236,6 +236,7 @@
     SUBDIR += py-i3-gnome-pomodoro
     SUBDIR += py-khal
     SUBDIR += py-khard
+    SUBDIR += py-mss
     SUBDIR += py-paperless-ngx
     SUBDIR += py-py3status
     SUBDIR += py-pystash
diff --git a/deskutils/py-mss/Makefile b/deskutils/py-mss/Makefile
new file mode 100644
index 000000000000..85f868486849
--- /dev/null
+++ b/deskutils/py-mss/Makefile
@@ -0,0 +1,22 @@
+PORTNAME=	mss
+DISTVERSION=	10.1.0
+CATEGORIES=	deskutils python
+MASTER_SITES=	PYPI
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Cross-platform multiple screenshots module in pure python using ctypes
+WWW=		https://ultrafunkamsterdam.github.io/nodriver \
+		https://github.com/UltrafunkAmsterdam/nodriver
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE.txt
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}hatchling>0:devel/py-hatchling@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	pep517 concurrent autoplist
+
+NO_ARCH=	yes
+
+.include <bsd.port.mk>
diff --git a/deskutils/py-mss/distinfo b/deskutils/py-mss/distinfo
new file mode 100644
index 000000000000..37676d562f28
--- /dev/null
+++ b/deskutils/py-mss/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1776412251
+SHA256 (mss-10.1.0.tar.gz) = 7182baf7ee16ca569e2804028b6ab9bcbf6be5c46fc2880840f33b513b9cb4f8
+SIZE (mss-10.1.0.tar.gz) = 84200
diff --git a/deskutils/py-mss/pkg-descr b/deskutils/py-mss/pkg-descr
new file mode 100644
index 000000000000..b69a78404610
--- /dev/null
+++ b/deskutils/py-mss/pkg-descr
@@ -0,0 +1,13 @@
+MSS stands for Multiple ScreenShots.
+
+mss is an ultra-fast cross-platform multiple screenshots module in pure Python
+using ctypes.
+
+Featues:
+* Python 3.9+, PEP8 compliant, no dependency, thread-safe
+* very basic, it will grab one screenshot by monitor or a screenshot of all
+  monitors and save it to a PNG file
+* you can use PIL and benefit from all its formats (or add yours directly)
+* integrate well with Numpy and OpenCV
+* it could be easily embedded into games and other software which require fast
+  and platform optimized methods to grab screenshots (like AI, Computer Vision)