diff options
| author | cashmere <cashmere@autistici.org> | 2026-07-25 13:54:52 +0200 |
|---|---|---|
| committer | cashmere <cashmere@autistici.org> | 2026-07-25 13:54:52 +0200 |
| commit | 8132c06bf78e2ed39deb917fd9e96823e40b7b42 (patch) | |
| tree | 49c97e0daf25d9ef4654fc11cab262baf89c70a2 | |
| parent | 11214b70b0d5e670d85c294e79f96cba63e34b13 (diff) | |
| download | ports-8132c06bf78e2ed39deb917fd9e96823e40b7b42.tar.gz | |
add sunshine, i3bar-river, mango and scenefx05 ports
30 files changed, 873 insertions, 0 deletions
@@ -1,5 +1,6 @@ distfiles/ work/ *.pkg +*.core appjail/files/dotfiles/ appjail/files/pinentry-emacs @@ -2,6 +2,10 @@ COMMENT = Custom ports tree SUBDIR += devel SUBDIR += misc +SUBDIR += multimedia SUBDIR += security +SUBDIR += x11 +SUBDIR += x11-wm +SUBDIR += x11-toolkits .include <bsd.port.subdir.mk> diff --git a/multimedia/Makefile b/multimedia/Makefile new file mode 100644 index 0000000..e60be27 --- /dev/null +++ b/multimedia/Makefile @@ -0,0 +1,5 @@ +COMMENT = Multimedia software + +SUBDIR += sunshine + +.include <bsd.port.subdir.mk> diff --git a/multimedia/sunshine/Makefile b/multimedia/sunshine/Makefile new file mode 100644 index 0000000..0eea409 --- /dev/null +++ b/multimedia/sunshine/Makefile @@ -0,0 +1,128 @@ +PORTNAME= sunshine +DISTVERSIONPREFIX= v +DISTVERSION= 2026.516.143833 +CATEGORIES= multimedia + +MAINTAINER= cashmere@autistici.org +COMMENT= Self-hosted game stream host for Moonlight +WWW= https://app.lizardbyte.dev/Sunshine + +LICENSE= GPLv3 +LICENSE_FILE= ${WRKSRC}/LICENSE + +# Prebuilt FFmpeg static libraries published by LizardByte/build-deps +# (the same archive upstream's own FreeBSD package is linked against). +# Sunshine's cmake requires libcbs.a, which no FreeBSD port provides, +# so building against multimedia/ffmpeg is not an option. +FFMPEG_BDEP_TAG= v2026.516.30821 + +FETCH_DEPENDS= npm:www/npm +BUILD_DEPENDS= npm:www/npm \ + boost-libs>=0:devel/boost-libs \ + glslc:graphics/shaderc \ + wayland-scanner:graphics/wayland \ + ${PYTHON_PKGNAMEPREFIX}Jinja2>=0:devel/py-Jinja2 \ + ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools \ + ${LOCALBASE}/include/linux/input.h:devel/evdev-proto \ + ${LOCALBASE}/include/vulkan/vulkan.h:graphics/vulkan-headers \ + ${LOCALBASE}/share/cmake/nlohmann_json/nlohmann_jsonConfig.cmake:devel/nlohmann-json \ + ${LOCALBASE}/share/pkgconfig/wayland-protocols.pc:graphics/wayland-protocols +LIB_DEPENDS= libatk-1.0.so:accessibility/at-spi2-core \ + libayatana-appindicator3.so:devel/libayatana-appindicator \ + libayatana-ido3-0.4.so:devel/ayatana-ido \ + libayatana-indicator3.so:devel/libayatana-indicator \ + libcurl.so:ftp/curl \ + libdbusmenu-glib.so:devel/libdbusmenu \ + libdrm.so:graphics/libdrm \ + libevdev.so:devel/libevdev \ + libgbm.so:graphics/mesa-libs \ + libharfbuzz.so:print/harfbuzz \ + libicui18n.so:devel/icu \ + libminiupnpc.so:net/miniupnpc \ + libnotify.so:devel/libnotify \ + libopus.so:audio/opus \ + libpipewire-0.3.so:multimedia/pipewire \ + libpulse.so:audio/pulseaudio \ + libva.so:multimedia/libva \ + libva-drm.so:multimedia/libva \ + libva-x11.so:multimedia/libva \ + libvulkan.so:graphics/vulkan-loader \ + libwayland-client.so:graphics/wayland + +USES= cmake gnome pkgconfig python:build ssl xorg +USE_GNOME= cairo gdkpixbuf glib20 gtk30 pango +USE_XORG= ice sm x11 xcb xext xfixes xrandr xtst + +USE_GITHUB= yes +GH_ACCOUNT= LizardByte +GH_PROJECT= Sunshine +GH_TUPLE= LizardByte-infrastructure:Simple-Web-Server:546895a93a29062bb178367b46c7afb72da9881e:sws/third-party/Simple-Web-Server \ + moonlight-stream:moonlight-common-c:2600beaf13f18bfa43453609cf5e3b84a4227760:mlc/third-party/moonlight-common-c \ + cgutman:enet:c7353c059373f8d3fc83d451f8f1a477be3dc94e:enet/third-party/moonlight-common-c/enet \ + LizardByte:libdisplaydevice:fe7e6a81f65deae91594702e1a185f47229745b9:ldd/third-party/libdisplaydevice \ + Dav1dde:glad:73db193f853e2ee079bf3ca8a64aa2eaf6459043:glad/third-party/glad \ + games-on-whales:inputtino:f4ce2b0df536ef309e9ff318f75b460f7097d7c1:inputtino/third-party/inputtino \ + sleepybishop:nanors:19f07b513e924e471cadd141943c1ec4adc8d0e0:nanors/third-party/nanors \ + LizardByte:tray:563dee475f8878d252ab2b9938d3a014e776ed08:tray/third-party/tray \ + LizardByte-infrastructure:wlr-protocols:bf4fc79abc359eea5a0edec0ac6d4a2b2955f82a:wlr/third-party/wlr-protocols \ + KDE:plasma-wayland-protocols:4c015e90ae6c88f2ffa766e899387ef431eade49:pwp/third-party/plasma-wayland-protocols \ + FFmpeg:nv-codec-headers:33a9ede8d9914299d9262539c576a15bd0a19621:nvch/third-party/nv-codec-headers + +MASTER_SITES+= https://github.com/LizardByte/build-deps/releases/download/${FFMPEG_BDEP_TAG}/:ffmpeg_bin +DISTFILES+= FreeBSD-amd64-ffmpeg.tar.gz:ffmpeg_bin \ + ${WEB_DEPS_TARBALL} + +INSTALLS_ICONS= yes + +# Node modules for the web UI, vendored in pre-fetch (the only phase with +# network access under poudriere). files/patch-cmake_targets_common.cmake +# drops the "npm ci" step from the build so the vendored copy is used as-is. +WEB_DEPS_TARBALL= ${PORTNAME}-web-deps-${DISTVERSION}${EXTRACT_SUFX} +WEB_UI_URL= https://raw.githubusercontent.com/${GH_ACCOUNT}/${GH_PROJECT}/${DISTVERSIONPREFIX}${DISTVERSION} + +CMAKE_ARGS= -DBUILD_DOCS=OFF \ + -DBUILD_TESTS=OFF \ + -DBUILD_WERROR=OFF \ + -DFFMPEG_PREPARED_BINARIES=${WRKDIR}/ffmpeg \ + -DGLAD_SKIP_PIP_INSTALL=ON \ + -DOPUS_USE_STATIC=OFF \ + -DPython_EXECUTABLE=${PYTHON_CMD} \ + -DSUNSHINE_ASSETS_DIR=share/assets \ + -DSUNSHINE_ENABLE_CUDA=OFF \ + -DSUNSHINE_ENABLE_DRM=OFF \ + -DSUNSHINE_ENABLE_KWIN=ON \ + -DSUNSHINE_ENABLE_PORTAL=ON \ + -DSUNSHINE_ENABLE_VAAPI=ON \ + -DSUNSHINE_ENABLE_VULKAN=ON \ + -DSUNSHINE_ENABLE_WAYLAND=ON \ + -DSUNSHINE_ENABLE_X11=ON \ + -DSUNSHINE_EXECUTABLE_PATH=${PREFIX}/bin/sunshine \ + -DSUNSHINE_PUBLISHER_NAME=FreeBSD \ + -DSUNSHINE_PUBLISHER_WEBSITE=https://app.lizardbyte.dev \ + -DSUNSHINE_PUBLISHER_ISSUE_URL=https://app.lizardbyte.dev/support \ + -DSUNSHINE_SYSTEM_VULKAN_HEADERS=ON \ + -DSUNSHINE_SYSTEM_WAYLAND_PROTOCOLS=ON + +# Version is normally derived from git; the distfile is not a checkout. +CONFIGURE_ENV= BRANCH=master \ + BUILD_VERSION=${DISTVERSIONPREFIX}${DISTVERSION} + +pre-fetch: + @if ! [ -f ${DISTDIR}/${WEB_DEPS_TARBALL} ]; then ( \ + ${RM} -rf ${WRKDIR}/web-deps && \ + ${MKDIR} ${WRKDIR}/web-deps && \ + cd ${WRKDIR}/web-deps && \ + ${FETCH_CMD} -o package.json ${WEB_UI_URL}/package.json && \ + ${FETCH_CMD} -o package-lock.json ${WEB_UI_URL}/package-lock.json && \ + ${SETENV} HOME=${WRKDIR}/web-deps npm ci --ignore-scripts && \ + ${FIND} node_modules -exec ${TOUCH} -h -d 1970-01-01T00:00:00Z {} \; && \ + ${FIND} node_modules -print0 | ${SORT} -z | \ + ${TAR} czf ${DISTDIR}/${WEB_DEPS_TARBALL} --format=bsdtar --gid 0 --uid 0 \ + --options gzip:!timestamp --no-recursion --null -T - && \ + ${RM} -rf ${WRKDIR}/web-deps \ + ); fi + +post-extract: + @${MV} ${WRKDIR}/node_modules ${WRKSRC}/node_modules + +.include <bsd.port.mk> diff --git a/multimedia/sunshine/distinfo b/multimedia/sunshine/distinfo new file mode 100644 index 0000000..a811694 --- /dev/null +++ b/multimedia/sunshine/distinfo @@ -0,0 +1,29 @@ +TIMESTAMP = 1784755912 +SHA256 (FreeBSD-amd64-ffmpeg.tar.gz) = 2f1f1510ec121ac8e5aa5ee998bdefecfd09430536c1d5669e29fa2e878621a5 +SIZE (FreeBSD-amd64-ffmpeg.tar.gz) = 15033043 +SHA256 (sunshine-web-deps-2026.516.143833.tar.gz) = 87a3fc5ce8d55d0d965fd2948e1c22b7da4cbe6278d788f972fab4f19f223c0f +SIZE (sunshine-web-deps-2026.516.143833.tar.gz) = 28793714 +SHA256 (LizardByte-Sunshine-v2026.516.143833_GH0.tar.gz) = d435babfd68ec0b1bcba74d861b11839c9226051c65bcde96e4aa133406c9ccb +SIZE (LizardByte-Sunshine-v2026.516.143833_GH0.tar.gz) = 30150477 +SHA256 (LizardByte-infrastructure-Simple-Web-Server-546895a93a29062bb178367b46c7afb72da9881e_GH0.tar.gz) = de46eeceb87f6d8ff30a494ed9d3b915844a179b32067f8347ee854a07fd3c8c +SIZE (LizardByte-infrastructure-Simple-Web-Server-546895a93a29062bb178367b46c7afb72da9881e_GH0.tar.gz) = 74751 +SHA256 (moonlight-stream-moonlight-common-c-2600beaf13f18bfa43453609cf5e3b84a4227760_GH0.tar.gz) = deb2b783af0c3bdb9fbc5e4b1f9804afe6a18752199b0f78193b479518060fc8 +SIZE (moonlight-stream-moonlight-common-c-2600beaf13f18bfa43453609cf5e3b84a4227760_GH0.tar.gz) = 267470 +SHA256 (cgutman-enet-c7353c059373f8d3fc83d451f8f1a477be3dc94e_GH0.tar.gz) = 8ca4d6f63f1f2969f49e2f141d9b52b29117f9ece06ea0d38972e00c4d714a94 +SIZE (cgutman-enet-c7353c059373f8d3fc83d451f8f1a477be3dc94e_GH0.tar.gz) = 87127 +SHA256 (LizardByte-libdisplaydevice-fe7e6a81f65deae91594702e1a185f47229745b9_GH0.tar.gz) = bef3f1f79d09b0e50af75c4b4ec6b83d0fe07f48f5b79c8336b3cec238eb6813 +SIZE (LizardByte-libdisplaydevice-fe7e6a81f65deae91594702e1a185f47229745b9_GH0.tar.gz) = 116379 +SHA256 (Dav1dde-glad-73db193f853e2ee079bf3ca8a64aa2eaf6459043_GH0.tar.gz) = 33dbeae44d8315ece57e14eba4b1b4a02ac5406d1c4f49cd20048c91522a6b9a +SIZE (Dav1dde-glad-73db193f853e2ee079bf3ca8a64aa2eaf6459043_GH0.tar.gz) = 645779 +SHA256 (games-on-whales-inputtino-f4ce2b0df536ef309e9ff318f75b460f7097d7c1_GH0.tar.gz) = 05edf6a089f137ccbf069af482df0dca55507f60518d90612b606a1f2531c564 +SIZE (games-on-whales-inputtino-f4ce2b0df536ef309e9ff318f75b460f7097d7c1_GH0.tar.gz) = 105409 +SHA256 (sleepybishop-nanors-19f07b513e924e471cadd141943c1ec4adc8d0e0_GH0.tar.gz) = 2ece5782cd6ff87f74ebd0ffaf28b9256b498b6b3f5344aeb75b873c15eeb2dc +SIZE (sleepybishop-nanors-19f07b513e924e471cadd141943c1ec4adc8d0e0_GH0.tar.gz) = 194695 +SHA256 (LizardByte-tray-563dee475f8878d252ab2b9938d3a014e776ed08_GH0.tar.gz) = 9e3cf37863861666b17c268165db952b8eede27f6e0fe07c784086bc235cdefb +SIZE (LizardByte-tray-563dee475f8878d252ab2b9938d3a014e776ed08_GH0.tar.gz) = 1090338 +SHA256 (LizardByte-infrastructure-wlr-protocols-bf4fc79abc359eea5a0edec0ac6d4a2b2955f82a_GH0.tar.gz) = 9e0fd2be5ba7c84b81acdd086f84c2da2c2b5e4946a17bda3e9850c62e14057f +SIZE (LizardByte-infrastructure-wlr-protocols-bf4fc79abc359eea5a0edec0ac6d4a2b2955f82a_GH0.tar.gz) = 23571 +SHA256 (KDE-plasma-wayland-protocols-4c015e90ae6c88f2ffa766e899387ef431eade49_GH0.tar.gz) = 7edee38bd9b538f9eaade4684a0ef2356aec5a473c9acdd10fcb97d2789d00e8 +SIZE (KDE-plasma-wayland-protocols-4c015e90ae6c88f2ffa766e899387ef431eade49_GH0.tar.gz) = 67394 +SHA256 (FFmpeg-nv-codec-headers-33a9ede8d9914299d9262539c576a15bd0a19621_GH0.tar.gz) = edea75e86115072797224a28d29b114009857b10e11e630f54ecb1909fe92a35 +SIZE (FFmpeg-nv-codec-headers-33a9ede8d9914299d9262539c576a15bd0a19621_GH0.tar.gz) = 83821 diff --git a/multimedia/sunshine/files/patch-cmake_targets_common.cmake b/multimedia/sunshine/files/patch-cmake_targets_common.cmake new file mode 100644 index 0000000..d739eb4 --- /dev/null +++ b/multimedia/sunshine/files/patch-cmake_targets_common.cmake @@ -0,0 +1,16 @@ +The port vendors node_modules at fetch time (pre-fetch), so the "npm ci" +step would fail without network access. Only run the actual web UI build. + +--- cmake/targets/common.cmake.orig ++++ cmake/targets/common.cmake +@@ -54,8 +54,7 @@ + + add_custom_target(web-ui ALL + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" +- COMMENT "Installing NPM Dependencies and Building the Web UI" +- COMMAND "$<$<BOOL:${WIN32}>:cmd;/C>" "${NPM}" ci ${NPM_INSTALL_FLAGS} +- COMMAND "${CMAKE_COMMAND}" -E env "SUNSHINE_BUILD_HOMEBREW=${NPM_BUILD_HOMEBREW}" "SUNSHINE_SOURCE_ASSETS_DIR=${NPM_SOURCE_ASSETS_DIR}" "SUNSHINE_ASSETS_DIR=${NPM_ASSETS_DIR}" "$<$<BOOL:${WIN32}>:cmd;/C>" "${NPM}" run build # cmake-lint: disable=C0301 ++ COMMENT "Building the Web UI (npm dependencies are vendored by the port)" ++ COMMAND "${CMAKE_COMMAND}" -E env "SUNSHINE_BUILD_HOMEBREW=${NPM_BUILD_HOMEBREW}" "SUNSHINE_SOURCE_ASSETS_DIR=${NPM_SOURCE_ASSETS_DIR}" "SUNSHINE_ASSETS_DIR=${NPM_ASSETS_DIR}" "$<$<BOOL:${WIN32}>:cmd;/C>" "${NPM}" run build # cmake-lint: disable=C0301 + COMMAND_EXPAND_LISTS + VERBATIM) diff --git a/multimedia/sunshine/files/patch-src_platform_linux_wlgrab.cpp b/multimedia/sunshine/files/patch-src_platform_linux_wlgrab.cpp new file mode 100644 index 0000000..a7349db --- /dev/null +++ b/multimedia/sunshine/files/patch-src_platform_linux_wlgrab.cpp @@ -0,0 +1,11 @@ +--- src/platform/linux/wlgrab.cpp.orig ++++ src/platform/linux/wlgrab.cpp +@@ -418,7 +418,7 @@ + return nullptr; + } + +- if (hwdevice_type == platf::mem_type_e::vaapi || hwdevice_type == platf::mem_type_e::cuda) { ++ if (hwdevice_type == platf::mem_type_e::vaapi) { + auto wlr = std::make_shared<wl::wlr_vram_t>(); + if (wlr->init(hwdevice_type, display_name, config)) { + return nullptr; diff --git a/multimedia/sunshine/files/patch-src_video.cpp b/multimedia/sunshine/files/patch-src_video.cpp new file mode 100644 index 0000000..e79e664 --- /dev/null +++ b/multimedia/sunshine/files/patch-src_video.cpp @@ -0,0 +1,10 @@ +--- src/video.cpp.orig ++++ src/video.cpp +@@ -134,6 +134,7 @@ + // Setup the input frame using the caller's img_t + sws_input_frame->data[0] = img.data; + sws_input_frame->linesize[0] = img.row_pitch; ++ if (!img.data) { return 0; } + + // Perform color conversion and scaling to the final size + auto status = sws_scale_frame(sws.get(), requires_padding ? sws_output_frame.get() : sw_frame.get(), sws_input_frame.get()); diff --git a/multimedia/sunshine/pkg-descr b/multimedia/sunshine/pkg-descr new file mode 100644 index 0000000..3f28cb5 --- /dev/null +++ b/multimedia/sunshine/pkg-descr @@ -0,0 +1,10 @@ +Sunshine is a self-hosted game stream host for Moonlight. It offers low +latency game streaming with support for AMD, Intel, and NVIDIA GPUs for +hardware encoding; software encoding is also available. You can connect +to Sunshine from any Moonlight client on a variety of devices. A web UI +is provided to allow configuration and client pairing from your favorite +web browser. + +On FreeBSD, Sunshine supports X11 and Wayland (wlr-screencopy, KWin, and +XDG portal/PipeWire) capture, VA-API and Vulkan video encoding, and +virtual input via /dev/uinput. diff --git a/multimedia/sunshine/pkg-install b/multimedia/sunshine/pkg-install new file mode 100644 index 0000000..ae573d3 --- /dev/null +++ b/multimedia/sunshine/pkg-install @@ -0,0 +1,12 @@ +#!/bin/sh + +# The 'input' group is not registered in the ports tree's GIDs, so the +# GROUPS framework cannot create it. Mirror what upstream's own FreeBSD +# package does in its +POST_INSTALL script. + +if [ "$2" = "POST-INSTALL" ]; then + if ! /usr/sbin/pw groupshow input >/dev/null 2>&1; then + echo "Creating 'input' group for virtual input devices..." + /usr/sbin/pw groupadd input + fi +fi diff --git a/multimedia/sunshine/pkg-message b/multimedia/sunshine/pkg-message new file mode 100644 index 0000000..b9b023e --- /dev/null +++ b/multimedia/sunshine/pkg-message @@ -0,0 +1,25 @@ +[ +{ type: install + message: <<EOM + +Virtual input (keyboard, mouse, gamepads) requires your user to be in +the 'input' group: + + pw groupmod input -m <user> + +Log out and back in for the change to take effect. You may also want a +devfs rule so /dev/uinput is accessible to the group, e.g. in +/etc/devfs.rules: + + [sunshine=47989] + add path 'uinput' mode 0660 group input + +Sunshine must run as the logged-in user inside the graphical session +(Wayland or X11) -- start it from your compositor's autostart, not from +rc.d. + +On first run, browse to https://<host>:47990 to create admin +credentials, then pair each Moonlight client with the PIN flow. +EOM +} +] diff --git a/multimedia/sunshine/pkg-plist b/multimedia/sunshine/pkg-plist new file mode 100644 index 0000000..2b2f7f5 --- /dev/null +++ b/multimedia/sunshine/pkg-plist @@ -0,0 +1,98 @@ +bin/sunshine +share/applications/dev.lizardbyte.app.Sunshine.desktop +share/applications/dev.lizardbyte.app.Sunshine.kwin.desktop +share/applications/dev.lizardbyte.app.Sunshine.terminal.desktop +share/assets/apps.json +share/assets/box.png +share/assets/desktop-alt.png +share/assets/desktop.png +share/assets/shaders/opengl/ConvertUV.frag +share/assets/shaders/opengl/ConvertUV.vert +share/assets/shaders/opengl/ConvertY.frag +share/assets/shaders/opengl/Scene.frag +share/assets/shaders/opengl/Scene.vert +share/assets/shaders/vulkan/rgb2yuv.comp +share/assets/steam.png +share/assets/web/apps.html +share/assets/web/assets/Checkbox-_zq52Lmd.js +share/assets/web/assets/Navbar-e42_J4ze.js +share/assets/web/assets/Navbar-vHSgVmbh.css +share/assets/web/assets/Notification-CVXXWQML.css +share/assets/web/assets/Notification-E6BjStlk.js +share/assets/web/assets/ResourceCard-BdWfmJX4.js +share/assets/web/assets/SimpleIcon-BGMhT-IK.js +share/assets/web/assets/apps-By4QjfNI.js +share/assets/web/assets/config-B_QFm8FU.css +share/assets/web/assets/config-Ceh7-s-9.js +share/assets/web/assets/createLucideIcon-BL5QWnkG.css +share/assets/web/assets/createLucideIcon-mjjtyxlm.js +share/assets/web/assets/css/sunshine.css +share/assets/web/assets/download-30STmUeh.js +share/assets/web/assets/featured-CUyJLtGo.js +share/assets/web/assets/fetch_utils-9iXjNOiI.js +share/assets/web/assets/file-text-DLPhJfqV.js +share/assets/web/assets/gamepad-2-DxOHyImA.js +share/assets/web/assets/index-k68q3BDp.js +share/assets/web/assets/locale/bg.json +share/assets/web/assets/locale/cs.json +share/assets/web/assets/locale/de.json +share/assets/web/assets/locale/en.json +share/assets/web/assets/locale/en_GB.json +share/assets/web/assets/locale/en_US.json +share/assets/web/assets/locale/es.json +share/assets/web/assets/locale/fr.json +share/assets/web/assets/locale/hu.json +share/assets/web/assets/locale/it.json +share/assets/web/assets/locale/ja.json +share/assets/web/assets/locale/ko.json +share/assets/web/assets/locale/pl.json +share/assets/web/assets/locale/pt.json +share/assets/web/assets/locale/pt_BR.json +share/assets/web/assets/locale/ru.json +share/assets/web/assets/locale/sv.json +share/assets/web/assets/locale/tr.json +share/assets/web/assets/locale/uk.json +share/assets/web/assets/locale/vi.json +share/assets/web/assets/locale/zh.json +share/assets/web/assets/locale/zh_TW.json +share/assets/web/assets/logout-DiLZqZLO.js +share/assets/web/assets/monitor-DGvs6yC0.js +share/assets/web/assets/password-CHVIwd7n.js +share/assets/web/assets/pin-DugfOfma.js +share/assets/web/assets/rotate-ccw-DTIrC0O4.js +share/assets/web/assets/save-DWz7vErV.js +share/assets/web/assets/trash-2-YONst-Qs.js +share/assets/web/assets/troubleshooting-D5oZ-p-S.js +share/assets/web/assets/welcome-BuhUsvon.js +share/assets/web/config.html +share/assets/web/featured.html +share/assets/web/images/logo-sunshine-16.png +share/assets/web/images/logo-sunshine-45.png +share/assets/web/images/sunshine-locked-16.png +share/assets/web/images/sunshine-locked-45.png +share/assets/web/images/sunshine-locked.ico +share/assets/web/images/sunshine-locked.png +share/assets/web/images/sunshine-locked.svg +share/assets/web/images/sunshine-pausing-16.png +share/assets/web/images/sunshine-pausing-45.png +share/assets/web/images/sunshine-pausing.ico +share/assets/web/images/sunshine-pausing.png +share/assets/web/images/sunshine-pausing.svg +share/assets/web/images/sunshine-playing-16.png +share/assets/web/images/sunshine-playing-45.png +share/assets/web/images/sunshine-playing.ico +share/assets/web/images/sunshine-playing.png +share/assets/web/images/sunshine-playing.svg +share/assets/web/images/sunshine.ico +share/assets/web/index.html +share/assets/web/logout.html +share/assets/web/password.html +share/assets/web/pin.html +share/assets/web/troubleshooting.html +share/assets/web/welcome.html +share/icons/hicolor/scalable/apps/dev.lizardbyte.app.Sunshine.svg +share/icons/hicolor/scalable/status/dev.lizardbyte.app.Sunshine-locked.svg +share/icons/hicolor/scalable/status/dev.lizardbyte.app.Sunshine-pausing.svg +share/icons/hicolor/scalable/status/dev.lizardbyte.app.Sunshine-playing.svg +share/icons/hicolor/scalable/status/dev.lizardbyte.app.Sunshine-tray.svg +share/metainfo/dev.lizardbyte.app.Sunshine.metainfo.xml @@ -8,4 +8,8 @@ devel/py-rassumfrassum devel/pyrefly devel/yaml-language-server misc/kimi-code +multimedia/sunshine security/pinentry-emacs +x11/i3bar-river +x11-wm/mango +x11-toolkits/scenefx05 diff --git a/x11-toolkits/Makefile b/x11-toolkits/Makefile new file mode 100644 index 0000000..e1104cc --- /dev/null +++ b/x11-toolkits/Makefile @@ -0,0 +1,5 @@ +COMMENT = X11 toolkits + +SUBDIR += scenefx05 + +.include <bsd.port.subdir.mk> diff --git a/x11-toolkits/scenefx05/Makefile b/x11-toolkits/scenefx05/Makefile new file mode 100644 index 0000000..d9948ae --- /dev/null +++ b/x11-toolkits/scenefx05/Makefile @@ -0,0 +1,35 @@ +PORTNAME= scenefx +DISTVERSION= 0.5 +CATEGORIES= x11-toolkits +PKGNAMESUFFIX= 05 + +MAINTAINER= jbeich@FreeBSD.org +COMMENT= wlroots scene API, but with eye candy! +WWW= https://github.com/wlrfx/scenefx + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= wayland-protocols>=1.41:graphics/wayland-protocols +LIB_DEPENDS= libdrm.so:graphics/libdrm \ + libwayland-server.so:graphics/wayland \ + libwlroots-0.20.so:x11-toolkits/wlroots020 \ + +USES= compiler:c11 meson pkgconfig xorg +USE_GITHUB= yes +USE_LDCONFIG= yes +USE_XORG= pixman +GH_ACCOUNT= wlrfx +MESON_ARGS= -Dexamples=false -Drenderers=${RENDERERS:ts,} +PLIST_SUB= SUFFIX=-${DISTVERSION} + + +OPTIONS_DEFINE= OPENGL +OPTIONS_DEFAULT=OPENGL +OPTIONS_SLAVE= OPENGL # XXX Remove after adding VULKAN + +OPENGL_USES= gl +OPENGL_USE= GL=egl,gbm,glesv2 +OPENGL_VARS= RENDERERS+=gles2 + +.include <bsd.port.mk> diff --git a/x11-toolkits/scenefx05/distinfo b/x11-toolkits/scenefx05/distinfo new file mode 100644 index 0000000..42aa027 --- /dev/null +++ b/x11-toolkits/scenefx05/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1784922707 +SHA256 (wlrfx-scenefx-0.5_GH0.tar.gz) = 0fa8ecca0e310f813efd052624c5ed7d9153d6a0fdead5cc957d34c07f9a86c6 +SIZE (wlrfx-scenefx-0.5_GH0.tar.gz) = 109708 diff --git a/x11-toolkits/scenefx05/pkg-descr b/x11-toolkits/scenefx05/pkg-descr new file mode 100644 index 0000000..bde5f7a --- /dev/null +++ b/x11-toolkits/scenefx05/pkg-descr @@ -0,0 +1,9 @@ +wlroots is the de-facto library for building wayland compositors, and +its scene api is a great stride in simplifying wayland compositor +development. The problem with the scene api (for compositors looking +for eye candy), however, is that it forces you to use the wlr +renderer, which is powerful yet simple. SceneFX is a project that +takes the scene api and replaces the wlr renderer with our own fx +renderer, capable of rendering surfaces with eye-candy effects +including blur, shadows, and rounded corners, while maintaining the +benefits of simplicity gained from using the scene api. diff --git a/x11-toolkits/scenefx05/pkg-plist b/x11-toolkits/scenefx05/pkg-plist new file mode 100644 index 0000000..34af085 --- /dev/null +++ b/x11-toolkits/scenefx05/pkg-plist @@ -0,0 +1,9 @@ +include/scenefx-0.5/scenefx/render/fx_renderer/fx_offscreen_buffers.h +include/scenefx-0.5/scenefx/render/fx_renderer/fx_renderer.h +include/scenefx-0.5/scenefx/render/pass.h +include/scenefx-0.5/scenefx/types/fx/blur_data.h +include/scenefx-0.5/scenefx/types/fx/clipped_region.h +include/scenefx-0.5/scenefx/types/linked_node.h +include/scenefx-0.5/scenefx/types/wlr_scene.h +lib/libscenefx-0.5.so +libdata/pkgconfig/scenefx-0.5.pc diff --git a/x11-wm/Makefile b/x11-wm/Makefile new file mode 100644 index 0000000..e8ebc0d --- /dev/null +++ b/x11-wm/Makefile @@ -0,0 +1,5 @@ +COMMENT = X11 window managers + +SUBDIR += mango + +.include <bsd.port.subdir.mk> diff --git a/x11-wm/mango/Makefile b/x11-wm/mango/Makefile new file mode 100644 index 0000000..cb9359a --- /dev/null +++ b/x11-wm/mango/Makefile @@ -0,0 +1,47 @@ +PORTNAME= mango +DISTVERSION= 0.15.4 + +CATEGORIES= x11-wm + +MAINTAINER= nivit@FreeBSD.org +COMMENT= Lightweight, high-performance Wayland compositor built on dwl +WWW= https://mangowm.github.io/ + +LICENSE= GPLv3 +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= hwdata>=0.399:misc/hwdata \ + wayland-protocols>=1.24:graphics/wayland-protocols +LIB_DEPENDS= libcjson.so:devel/libcjson \ + libinput.so:x11/libinput \ + libpcre2-8.so:devel/pcre2 \ + libpixman-1.so:x11/pixman \ + libscenefx-0.5.so:x11-toolkits/scenefx05 \ + libwlroots-0.20.so:x11-toolkits/wlroots020 \ + libxcb-icccm.so:x11/xcb-util-wm \ + libxkbcommon.so:x11/libxkbcommon \ + libwayland-server.so:graphics/wayland + +RUN_DEPENDS= hwdata>=0.399:misc/hwdata \ + Xwayland:x11-servers/xwayland + +USES= meson pkgconfig + +USE_GITHUB= yes +GH_ACCOUNT= mangowm + +MESON_ARGS= -Dsysconfdir=${PREFIX}/etc + +SUB_FILES= pkg-message + +OPTIONS_DEFINE= DOCS + +post-patch: + @${REINPLACE_CMD} -E -e "s|(assets/(config.conf))|\1', rename : '\2.sample|1" \ + ${WRKSRC}/meson.build + +post-install-DOCS-on: + ${MKDIR} ${STAGEDIR}${DOCSDIR} + (cd ${WRKSRC}/docs && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}) + +.include <bsd.port.mk> diff --git a/x11-wm/mango/distinfo b/x11-wm/mango/distinfo new file mode 100644 index 0000000..cecb731 --- /dev/null +++ b/x11-wm/mango/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1784922544 +SHA256 (mangowm-mango-0.15.4_GH0.tar.gz) = 50d075e59e6dd9a4baa3eaf80985fc246d5bc1caad0de85911d567df8b2dc1ba +SIZE (mangowm-mango-0.15.4_GH0.tar.gz) = 499975 diff --git a/x11-wm/mango/files/patch-meson.build b/x11-wm/mango/files/patch-meson.build new file mode 100644 index 0000000..5fc5a00 --- /dev/null +++ b/x11-wm/mango/files/patch-meson.build @@ -0,0 +1,30 @@ +--- meson.build.orig 2026-05-29 13:04:35 UTC ++++ meson.build +@@ -12,12 +12,16 @@ endif + endif + endif + ++osname = build_machine.system() ++ + prefix = get_option('prefix') + sysconfdir = get_option('sysconfdir') + + # 如果 sysconfdir 以 prefix 开头,去掉 prefix +-if sysconfdir.startswith(prefix) and not is_nixos +- sysconfdir = sysconfdir.substring(prefix.length()) ++if sysconfdir.startswith(prefix) and not is_nixos and osname != 'freebsd' ++ sysconfdir = sysconfdir.replace(prefix, '') + # 确保 sysconfdir 是绝对路径 + if not sysconfdir.startswith('/') + sysconfdir = '/' + sysconfdir +@@ -72,9 +76,8 @@ c_args = [ + '-g', + '-Wno-unused-function', + '-DWLR_USE_UNSTABLE', +- '-D_POSIX_C_SOURCE=200809L', + '-DVERSION="@0@"'.format(version_with_hash), +- '-DSYSCONFDIR="@0@"'.format('/etc'), ++ '-DSYSCONFDIR="@0@"'.format(sysconfdir), + ] + + # 仅在 debug 选项启用时添加调试参数 diff --git a/x11-wm/mango/files/patch-src_mango.c b/x11-wm/mango/files/patch-src_mango.c new file mode 100644 index 0000000..140092f --- /dev/null +++ b/x11-wm/mango/files/patch-src_mango.c @@ -0,0 +1,14 @@ +--- src/mango.c.orig 2026-05-29 13:04:35 UTC ++++ src/mango.c +@@ -7,7 +7,11 @@ + #include <getopt.h> + #include <libinput.h> + #include <limits.h> ++#ifdef __FreeBSD__ ++#include <dev/evdev/input-event-codes.h> ++#else + #include <linux/input-event-codes.h> ++#endif + #include <scenefx/render/fx_renderer/fx_renderer.h> + #include <scenefx/types/fx/blur_data.h> + #include <scenefx/types/fx/clipped_region.h> diff --git a/x11-wm/mango/files/pkg-message.in b/x11-wm/mango/files/pkg-message.in new file mode 100644 index 0000000..07378ce --- /dev/null +++ b/x11-wm/mango/files/pkg-message.in @@ -0,0 +1,36 @@ +[ +{ type: install + message: <<EOM +Before using Mango run the following commands as user: + + mkdir -p ~/.config/mango + cp %%PREFIX%%/etc/mango/config.conf ~/.config/mango/ + +then customize that file, in particular the variable + + xkb_rules_layout + +and the keyboard shortcut to launch a terminal + + bind=Alt,Return,spawn,foot + +(replace foot with your preferred terminal emulator). +EOM +} +{ type: upgrade + maximum_version: "0.14.0" + message: <<EOM + Version 0.14.0 of Mango has some breaking changes: + + - IPC Protocol Upgrade: The old dwl IPC protocol is now deprecated and will + be removed in the next version. + - Socket Restructuring: mmsg(1) now restricts the use of independent sockets. + This structural change delivers a more powerful, concise, and reliable + syntax, allowing you to seamlessly retrieve data for all clients, tags, + monitors, and messages. + + As a result, you must adapt any script that uses the mmsg(1) command to + the new syntax. +EOM +} +] diff --git a/x11-wm/mango/pkg-descr b/x11-wm/mango/pkg-descr new file mode 100644 index 0000000..fae3842 --- /dev/null +++ b/x11-wm/mango/pkg-descr @@ -0,0 +1,19 @@ +Mango is a modern, lightweight, high-performance Wayland compositor built on +dwl - crafted for speed, flexibility, and a customizable desktop experience. + +Feature Highlights + + - Excellent xwayland support + - Base tags not workspaces (supports separate window layouts for each tag) + - Smooth and customizable complete animations (window open/move/close, tag + enter/leave,layer open/close/move) + - Excellent input method support (text input v2/v3) + - Flexible window layouts with easy switching (scroller, master-stack, + monocle,center-master, etc.) + - Rich window states (swallow, minimize, maximize, unglobal, global, + fakefullscreen, overlay, etc.) + - Simple yet powerful external configuration (support shortcuts hot-reload) + - Sway-like scratchpad and named scratchpad + - Ipc support (get/send message from/to compositor by external program) + - Hycov-like overview + - Window effects from scenefx (blur, shadow, corner radius, opacity) diff --git a/x11-wm/mango/pkg-plist b/x11-wm/mango/pkg-plist new file mode 100644 index 0000000..4a2609f --- /dev/null +++ b/x11-wm/mango/pkg-plist @@ -0,0 +1,37 @@ +bin/mango +bin/mmsg +%%ETCDIR%%/config.conf.sample +%%PORTDOCS%%%%DOCSDIR%%/bindings/index.mdx +%%PORTDOCS%%%%DOCSDIR%%/bindings/keys.md +%%PORTDOCS%%%%DOCSDIR%%/bindings/meta.json +%%PORTDOCS%%%%DOCSDIR%%/bindings/mouse-gestures.md +%%PORTDOCS%%%%DOCSDIR%%/configuration/basics.md +%%PORTDOCS%%%%DOCSDIR%%/configuration/index.mdx +%%PORTDOCS%%%%DOCSDIR%%/configuration/input.md +%%PORTDOCS%%%%DOCSDIR%%/configuration/meta.json +%%PORTDOCS%%%%DOCSDIR%%/configuration/miscellaneous.md +%%PORTDOCS%%%%DOCSDIR%%/configuration/monitors.md +%%PORTDOCS%%%%DOCSDIR%%/configuration/xdg-portals.md +%%PORTDOCS%%%%DOCSDIR%%/faq.md +%%PORTDOCS%%%%DOCSDIR%%/index.md +%%PORTDOCS%%%%DOCSDIR%%/installation.md +%%PORTDOCS%%%%DOCSDIR%%/ipc.md +%%PORTDOCS%%%%DOCSDIR%%/meta.json +%%PORTDOCS%%%%DOCSDIR%%/nix-options.md +%%PORTDOCS%%%%DOCSDIR%%/quick-start.md +%%PORTDOCS%%%%DOCSDIR%%/screenshot.md +%%PORTDOCS%%%%DOCSDIR%%/visuals/animations.md +%%PORTDOCS%%%%DOCSDIR%%/visuals/effects.md +%%PORTDOCS%%%%DOCSDIR%%/visuals/index.mdx +%%PORTDOCS%%%%DOCSDIR%%/visuals/meta.json +%%PORTDOCS%%%%DOCSDIR%%/visuals/status-bar.md +%%PORTDOCS%%%%DOCSDIR%%/visuals/theming.md +%%PORTDOCS%%%%DOCSDIR%%/window-management/index.mdx +%%PORTDOCS%%%%DOCSDIR%%/window-management/layouts.md +%%PORTDOCS%%%%DOCSDIR%%/window-management/meta.json +%%PORTDOCS%%%%DOCSDIR%%/window-management/overview.md +%%PORTDOCS%%%%DOCSDIR%%/window-management/rules.md +%%PORTDOCS%%%%DOCSDIR%%/window-management/scratchpad.md +share/man/man1/mmsg.1.gz +share/wayland-sessions/mango.desktop +share/xdg-desktop-portal/mango-portals.conf diff --git a/x11/Makefile b/x11/Makefile new file mode 100644 index 0000000..dbc036b --- /dev/null +++ b/x11/Makefile @@ -0,0 +1,5 @@ +COMMENT = X11 programs and utilities + +SUBDIR += i3bar-river + +.include <bsd.port.subdir.mk> diff --git a/x11/i3bar-river/Makefile b/x11/i3bar-river/Makefile new file mode 100644 index 0000000..f88dcec --- /dev/null +++ b/x11/i3bar-river/Makefile @@ -0,0 +1,101 @@ +PORTNAME= i3bar-river +DISTVERSION= 1.1.0 +CATEGORIES= x11 +MASTER_SITES= # +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} + +MAINTAINER= cashmere@autistici.org +COMMENT= Port of i3bar for wlroots compositors, mango fork +WWW= https://github.com/MaxVerevkin/i3bar-river + +LICENSE= GPLv3 +LICENSE_FILE= ${WRKSRC}/LICENSE + +LIB_DEPENDS= libcairo.so:graphics/cairo \ + libpango-1.0.so:x11-toolkits/pango + +USES= cargo pkgconfig + +CARGO_CRATES= anstyle-1.0.10 \ + anyhow-1.0.98 \ + autocfg-1.4.0 \ + bitflags-2.9.1 \ + cairo-rs-0.20.10 \ + cairo-sys-rs-0.20.10 \ + cfg-expr-0.17.2 \ + clap-4.5.38 \ + clap_builder-4.5.38 \ + clap_derive-4.5.32 \ + clap_lex-0.7.4 \ + equivalent-1.0.2 \ + futures-channel-0.3.31 \ + futures-core-0.3.31 \ + futures-executor-0.3.31 \ + futures-io-0.3.31 \ + futures-macro-0.3.31 \ + futures-task-0.3.31 \ + futures-util-0.3.31 \ + gio-0.20.10 \ + gio-sys-0.20.10 \ + glib-0.20.10 \ + glib-macros-0.20.10 \ + glib-sys-0.20.10 \ + gobject-sys-0.20.10 \ + hashbrown-0.15.3 \ + heck-0.5.0 \ + indexmap-2.9.0 \ + itoa-1.0.15 \ + libc-0.2.172 \ + memchr-2.7.4 \ + memmap2-0.9.5 \ + pango-0.20.10 \ + pango-sys-0.20.10 \ + pangocairo-0.20.10 \ + pangocairo-sys-0.20.10 \ + pin-project-lite-0.2.16 \ + pin-utils-0.1.0 \ + pkg-config-0.3.32 \ + proc-macro-crate-3.3.0 \ + proc-macro2-1.0.95 \ + quick-xml-0.37.5 \ + quote-1.0.40 \ + ryu-1.0.20 \ + serde-1.0.219 \ + serde_derive-1.0.219 \ + serde_json-1.0.140 \ + serde_spanned-0.6.8 \ + shmemfdrs2-1.0.0 \ + signal-hook-0.3.18 \ + signal-hook-registry-1.4.5 \ + slab-0.4.9 \ + smallvec-1.15.0 \ + syn-2.0.101 \ + system-deps-7.0.3 \ + target-lexicon-0.12.16 \ + toml-0.8.22 \ + toml_datetime-0.6.9 \ + toml_edit-0.22.26 \ + unicode-ident-1.0.18 \ + version-compare-0.2.0 \ + wayrs-client-1.3.0 \ + wayrs-core-1.0.4 \ + wayrs-proto-parser-3.0.1 \ + wayrs-protocols-0.14.9+1.43 \ + wayrs-scanner-0.15.4 \ + wayrs-utils-0.17.1 \ + windows-sys-0.59.0 \ + windows-targets-0.52.6 \ + windows_aarch64_gnullvm-0.52.6 \ + windows_aarch64_msvc-0.52.6 \ + windows_i686_gnu-0.52.6 \ + windows_i686_gnullvm-0.52.6 \ + windows_i686_msvc-0.52.6 \ + windows_x86_64_gnu-0.52.6 \ + windows_x86_64_gnullvm-0.52.6 \ + windows_x86_64_msvc-0.52.6 \ + winnow-0.7.10 \ + xcursor-0.3.8 + +PLIST_FILES= bin/i3bar-river + +.include <bsd.port.mk> diff --git a/x11/i3bar-river/distinfo b/x11/i3bar-river/distinfo new file mode 100644 index 0000000..4c8316f --- /dev/null +++ b/x11/i3bar-river/distinfo @@ -0,0 +1,161 @@ +TIMESTAMP = 1784920280 +SHA256 (i3bar-river-1.1.0.tar.gz) = fe8b358927ba5d537cbf165827c0add322e7fa1ca4ee34630c4e97b0c4ca9586 +SIZE (i3bar-river-1.1.0.tar.gz) = 52864 +SHA256 (rust/crates/anstyle-1.0.10.crate) = 55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9 +SIZE (rust/crates/anstyle-1.0.10.crate) = 15725 +SHA256 (rust/crates/anyhow-1.0.98.crate) = e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487 +SIZE (rust/crates/anyhow-1.0.98.crate) = 53334 +SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26 +SIZE (rust/crates/autocfg-1.4.0.crate) = 17712 +SHA256 (rust/crates/bitflags-2.9.1.crate) = 1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967 +SIZE (rust/crates/bitflags-2.9.1.crate) = 47913 +SHA256 (rust/crates/cairo-rs-0.20.10.crate) = b58e62a27cd02fb3f63f82bb31fdda7e6c43141497cbe97e8816d7c914043f55 +SIZE (rust/crates/cairo-rs-0.20.10.crate) = 57584 +SHA256 (rust/crates/cairo-sys-rs-0.20.10.crate) = 059cc746549898cbfd9a47754288e5a958756650ef4652bbb6c5f71a6bda4f8b +SIZE (rust/crates/cairo-sys-rs-0.20.10.crate) = 14424 +SHA256 (rust/crates/cfg-expr-0.17.2.crate) = 8d4ba6e40bd1184518716a6e1a781bf9160e286d219ccdb8ab2612e74cfe4789 +SIZE (rust/crates/cfg-expr-0.17.2.crate) = 44034 +SHA256 (rust/crates/clap-4.5.38.crate) = ed93b9805f8ba930df42c2590f05453d5ec36cbb85d018868a5b24d31f6ac000 +SIZE (rust/crates/clap-4.5.38.crate) = 57140 +SHA256 (rust/crates/clap_builder-4.5.38.crate) = 379026ff283facf611b0ea629334361c4211d1b12ee01024eec1591133b04120 +SIZE (rust/crates/clap_builder-4.5.38.crate) = 169177 +SHA256 (rust/crates/clap_derive-4.5.32.crate) = 09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7 +SIZE (rust/crates/clap_derive-4.5.32.crate) = 33441 +SHA256 (rust/crates/clap_lex-0.7.4.crate) = f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6 +SIZE (rust/crates/clap_lex-0.7.4.crate) = 12858 +SHA256 (rust/crates/equivalent-1.0.2.crate) = 877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f +SIZE (rust/crates/equivalent-1.0.2.crate) = 7419 +SHA256 (rust/crates/futures-channel-0.3.31.crate) = 2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10 +SIZE (rust/crates/futures-channel-0.3.31.crate) = 31971 +SHA256 (rust/crates/futures-core-0.3.31.crate) = 05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e +SIZE (rust/crates/futures-core-0.3.31.crate) = 14318 +SHA256 (rust/crates/futures-executor-0.3.31.crate) = 1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f +SIZE (rust/crates/futures-executor-0.3.31.crate) = 17965 +SHA256 (rust/crates/futures-io-0.3.31.crate) = 9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6 +SIZE (rust/crates/futures-io-0.3.31.crate) = 9047 +SHA256 (rust/crates/futures-macro-0.3.31.crate) = 162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650 +SIZE (rust/crates/futures-macro-0.3.31.crate) = 11341 +SHA256 (rust/crates/futures-task-0.3.31.crate) = f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988 +SIZE (rust/crates/futures-task-0.3.31.crate) = 11217 +SHA256 (rust/crates/futures-util-0.3.31.crate) = 9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81 +SIZE (rust/crates/futures-util-0.3.31.crate) = 162124 +SHA256 (rust/crates/gio-0.20.10.crate) = ab2a654c887546d14fdb214cc04641cd30450c9b4fa4525fd989d25fd5a5561e +SIZE (rust/crates/gio-0.20.10.crate) = 221061 +SHA256 (rust/crates/gio-sys-0.20.10.crate) = 521e93a7e56fc89e84aea9a52cfc9436816a4b363b030260b699950ff1336c83 +SIZE (rust/crates/gio-sys-0.20.10.crate) = 86258 +SHA256 (rust/crates/glib-0.20.10.crate) = c501c495842c2b23cdacead803a5a343ca2a5d7a7ddaff14cc5f6cf22cfb92c2 +SIZE (rust/crates/glib-0.20.10.crate) = 293754 +SHA256 (rust/crates/glib-macros-0.20.10.crate) = ebe6dc9ce29887c4b3b74d78d5ba473db160a258ae7ed883d23632ac7fed7bc9 +SIZE (rust/crates/glib-macros-0.20.10.crate) = 76345 +SHA256 (rust/crates/glib-sys-0.20.10.crate) = 8ab79e1ed126803a8fb827e3de0e2ff95191912b8db65cee467edb56fc4cc215 +SIZE (rust/crates/glib-sys-0.20.10.crate) = 67282 +SHA256 (rust/crates/gobject-sys-0.20.10.crate) = ec9aca94bb73989e3cfdbf8f2e0f1f6da04db4d291c431f444838925c4c63eda +SIZE (rust/crates/gobject-sys-0.20.10.crate) = 22623 +SHA256 (rust/crates/hashbrown-0.15.3.crate) = 84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3 +SIZE (rust/crates/hashbrown-0.15.3.crate) = 140413 +SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea +SIZE (rust/crates/heck-0.5.0.crate) = 11517 +SHA256 (rust/crates/indexmap-2.9.0.crate) = cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e +SIZE (rust/crates/indexmap-2.9.0.crate) = 91214 +SHA256 (rust/crates/itoa-1.0.15.crate) = 4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c +SIZE (rust/crates/itoa-1.0.15.crate) = 11231 +SHA256 (rust/crates/libc-0.2.172.crate) = d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa +SIZE (rust/crates/libc-0.2.172.crate) = 791646 +SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3 +SIZE (rust/crates/memchr-2.7.4.crate) = 96670 +SHA256 (rust/crates/memmap2-0.9.5.crate) = fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f +SIZE (rust/crates/memmap2-0.9.5.crate) = 33280 +SHA256 (rust/crates/pango-0.20.10.crate) = d88d37c161f2848f0d9382597f0168484c9335ac800995f3956641abb7002938 +SIZE (rust/crates/pango-0.20.10.crate) = 49735 +SHA256 (rust/crates/pango-sys-0.20.10.crate) = 186909673fc09be354555c302c0b3dcf753cd9fa08dcb8077fa663c80fb243fa +SIZE (rust/crates/pango-sys-0.20.10.crate) = 28457 +SHA256 (rust/crates/pangocairo-0.20.10.crate) = 58890dc451db9964ac2d8874f903a4370a4b3932aa5281ff0c8d9810937ad84f +SIZE (rust/crates/pangocairo-0.20.10.crate) = 9465 +SHA256 (rust/crates/pangocairo-sys-0.20.10.crate) = b9952903f88aa93e2927e7bca2d1ebae64fc26545a9280b4ce6bddeda26b5c42 +SIZE (rust/crates/pangocairo-sys-0.20.10.crate) = 6667 +SHA256 (rust/crates/pin-project-lite-0.2.16.crate) = 3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b +SIZE (rust/crates/pin-project-lite-0.2.16.crate) = 30504 +SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184 +SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580 +SHA256 (rust/crates/pkg-config-0.3.32.crate) = 7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c +SIZE (rust/crates/pkg-config-0.3.32.crate) = 21370 +SHA256 (rust/crates/proc-macro-crate-3.3.0.crate) = edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35 +SIZE (rust/crates/proc-macro-crate-3.3.0.crate) = 12432 +SHA256 (rust/crates/proc-macro2-1.0.95.crate) = 02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778 +SIZE (rust/crates/proc-macro2-1.0.95.crate) = 51820 +SHA256 (rust/crates/quick-xml-0.37.5.crate) = 331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb +SIZE (rust/crates/quick-xml-0.37.5.crate) = 190481 +SHA256 (rust/crates/quote-1.0.40.crate) = 1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d +SIZE (rust/crates/quote-1.0.40.crate) = 31063 +SHA256 (rust/crates/ryu-1.0.20.crate) = 28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f +SIZE (rust/crates/ryu-1.0.20.crate) = 48738 +SHA256 (rust/crates/serde-1.0.219.crate) = 5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6 +SIZE (rust/crates/serde-1.0.219.crate) = 78983 +SHA256 (rust/crates/serde_derive-1.0.219.crate) = 5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00 +SIZE (rust/crates/serde_derive-1.0.219.crate) = 57798 +SHA256 (rust/crates/serde_json-1.0.140.crate) = 20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373 +SIZE (rust/crates/serde_json-1.0.140.crate) = 154852 +SHA256 (rust/crates/serde_spanned-0.6.8.crate) = 87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1 +SIZE (rust/crates/serde_spanned-0.6.8.crate) = 9330 +SHA256 (rust/crates/shmemfdrs2-1.0.0.crate) = 70a05cf957f811e44f99c629e6d34025429912ffb2333f2960372669e670f54c +SIZE (rust/crates/shmemfdrs2-1.0.0.crate) = 7919 +SHA256 (rust/crates/signal-hook-0.3.18.crate) = d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2 +SIZE (rust/crates/signal-hook-0.3.18.crate) = 50862 +SHA256 (rust/crates/signal-hook-registry-1.4.5.crate) = 9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410 +SIZE (rust/crates/signal-hook-registry-1.4.5.crate) = 19004 +SHA256 (rust/crates/slab-0.4.9.crate) = 8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67 +SIZE (rust/crates/slab-0.4.9.crate) = 17108 +SHA256 (rust/crates/smallvec-1.15.0.crate) = 8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9 +SIZE (rust/crates/smallvec-1.15.0.crate) = 38113 +SHA256 (rust/crates/syn-2.0.101.crate) = 8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf +SIZE (rust/crates/syn-2.0.101.crate) = 299250 +SHA256 (rust/crates/system-deps-7.0.3.crate) = 66d23aaf9f331227789a99e8de4c91bf46703add012bdfd45fdecdfb2975a005 +SIZE (rust/crates/system-deps-7.0.3.crate) = 26313 +SHA256 (rust/crates/target-lexicon-0.12.16.crate) = 61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1 +SIZE (rust/crates/target-lexicon-0.12.16.crate) = 26488 +SHA256 (rust/crates/toml-0.8.22.crate) = 05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae +SIZE (rust/crates/toml-0.8.22.crate) = 76224 +SHA256 (rust/crates/toml_datetime-0.6.9.crate) = 3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3 +SIZE (rust/crates/toml_datetime-0.6.9.crate) = 12622 +SHA256 (rust/crates/toml_edit-0.22.26.crate) = 310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e +SIZE (rust/crates/toml_edit-0.22.26.crate) = 121714 +SHA256 (rust/crates/unicode-ident-1.0.18.crate) = 5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512 +SIZE (rust/crates/unicode-ident-1.0.18.crate) = 47743 +SHA256 (rust/crates/version-compare-0.2.0.crate) = 852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b +SIZE (rust/crates/version-compare-0.2.0.crate) = 13942 +SHA256 (rust/crates/wayrs-client-1.3.0.crate) = 05f83967f2f1eb62adac1a6eb5914b4bf21ce7b5287cc26620197f6eaee1f704 +SIZE (rust/crates/wayrs-client-1.3.0.crate) = 51722 +SHA256 (rust/crates/wayrs-core-1.0.4.crate) = b6a2e30dd453ac7005dba842dba3d61cd567e86c2a818770f093d70c8c7bc5c9 +SIZE (rust/crates/wayrs-core-1.0.4.crate) = 9456 +SHA256 (rust/crates/wayrs-proto-parser-3.0.1.crate) = 41679c033d8ad15f8d9bbb73e50bb4ded3d4b12b8ba2123e5c526ed809b2e43c +SIZE (rust/crates/wayrs-proto-parser-3.0.1.crate) = 5856 +SHA256 (rust/crates/wayrs-protocols-0.14.9+1.43.crate) = 12d945447c7f7996e681022d1792e7e1fc751d2e7e16dcf1de93c55dbf455225 +SIZE (rust/crates/wayrs-protocols-0.14.9+1.43.crate) = 216661 +SHA256 (rust/crates/wayrs-scanner-0.15.4.crate) = 16b2f7c560a8d7cbca6af14443be51fb386acd02a558724c85dac8c7bf368d28 +SIZE (rust/crates/wayrs-scanner-0.15.4.crate) = 11005 +SHA256 (rust/crates/wayrs-utils-0.17.1.crate) = f1f13c8fddab7c554a3e4c680dbb6a117e81eeabe7f0eba37bf02d74b2bb6b0f +SIZE (rust/crates/wayrs-utils-0.17.1.crate) = 15195 +SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b +SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323 +SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973 +SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403 +SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3 +SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718 +SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469 +SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615 +SHA256 (rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b +SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402 +SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66 +SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940 +SHA256 (rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66 +SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163 +SHA256 (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78 +SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363 +SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d +SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707 +SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec +SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564 +SHA256 (rust/crates/winnow-0.7.10.crate) = c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec +SIZE (rust/crates/winnow-0.7.10.crate) = 176073 +SHA256 (rust/crates/xcursor-0.3.8.crate) = 0ef33da6b1660b4ddbfb3aef0ade110c8b8a781a3b6382fa5f2b5b040fd55f61 +SIZE (rust/crates/xcursor-0.3.8.crate) = 7191 diff --git a/x11/i3bar-river/pkg-descr b/x11/i3bar-river/pkg-descr new file mode 100644 index 0000000..66d9e2c --- /dev/null +++ b/x11/i3bar-river/pkg-descr @@ -0,0 +1 @@ +A port of i3bar for wlroots-based compositors (mango fork). |
