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 /multimedia | |
| parent | 11214b70b0d5e670d85c294e79f96cba63e34b13 (diff) | |
| download | ports-8132c06bf78e2ed39deb917fd9e96823e40b7b42.tar.gz | |
add sunshine, i3bar-river, mango and scenefx05 ports
Diffstat (limited to 'multimedia')
| -rw-r--r-- | multimedia/Makefile | 5 | ||||
| -rw-r--r-- | multimedia/sunshine/Makefile | 128 | ||||
| -rw-r--r-- | multimedia/sunshine/distinfo | 29 | ||||
| -rw-r--r-- | multimedia/sunshine/files/patch-cmake_targets_common.cmake | 16 | ||||
| -rw-r--r-- | multimedia/sunshine/files/patch-src_platform_linux_wlgrab.cpp | 11 | ||||
| -rw-r--r-- | multimedia/sunshine/files/patch-src_video.cpp | 10 | ||||
| -rw-r--r-- | multimedia/sunshine/pkg-descr | 10 | ||||
| -rw-r--r-- | multimedia/sunshine/pkg-install | 12 | ||||
| -rw-r--r-- | multimedia/sunshine/pkg-message | 25 | ||||
| -rw-r--r-- | multimedia/sunshine/pkg-plist | 98 |
10 files changed, 344 insertions, 0 deletions
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 |
