From nobody Tue Jan 13 06:39:05 2026 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4dr02f0ckXz6NVG0 for ; Tue, 13 Jan 2026 06:39:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dr02f02Mzz3NlF for ; Tue, 13 Jan 2026 06:39:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1768286346; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vmoeFaJOOUQZD8jpRlsuExZoVp1w39CDP09rId4ZtZM=; b=fIr9HHoBricvppXN4F2yaJM3B8fxJ8JSDF1ASwNf0vX4ZvSbiYVGgP7SZ1+1NUi/PBjXZ/ Jm0AOrtXIk0baZ+eLQpp/4G4Pw56K2ZgLjdlF56GdubJSku0IdCy6hwXu3WW3JzCV3+GbL EzsM1CDAEb5PktQ+40zCGd3A0Z6A7lvC8P50m9Fj3OOsKnl4xzK2YzjWS9GdWsXgT6E/mW d3+at0Fpf510BTwojbxDTpJe+htZXMi8ixYZc1qIzxYn4FEZmZqiCxT2nPNfkPBII08mdt m6MlnzDHyDTicZLNHqd0nZ5uO8AhyuCcS6o8bAhkUN36EBlKG14Vy83Ew+kOcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1768286346; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vmoeFaJOOUQZD8jpRlsuExZoVp1w39CDP09rId4ZtZM=; b=aEtp7ltXZ7xOTm5pUZZNBsvZ5uE1hMLu67UDcantPU5xdSkND3R1O0cs8pCKWOABlJXWw+ EfSDHVzeNmKYLl911V05iVslzc3KDwnNSM+1wRLLP1p5af99aFKWU0p8Z2athqI0Iu6pYH 6TsR2o87My5krtRMwz/oxpsIivO0mWMus2w4A4jztVXrLuvbUWXw4jGYF//fxIOAHPZK8E EDQXkTKNS11zDYWQEZ6vGOratIFfueg5JNTtFneM2rh0V+MkKLaOIa+N5wZjuGmzCtC4rk K5K0tXHG1HdDFGrEATfbsdUqpdFczOG/kMwDqukfr3kchmc/Gph4nBdA10v9wQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1768286346; a=rsa-sha256; cv=none; b=jLd/Boqvxhy7m1q8TvSzheIIGDt4KHHM+Uz/i+UCQbtWV6NyL6dLrQFvEnlzRYe1JU//DS Ld9oFtK31R0pFiaPVJtbE6f9Et16Ik7iJlO9xkilQxMVFLtjTQiUMuuul4ymTunh9x8zZ1 Lmr9XoMd1n72NtELvTbWQJv0h9aIXZ8s9tKLpv8utS2p1kGTi2r3kIQ3PmZHdNNaNVUJ72 O1uEU2nPTUN8BSYVSvtPB/qro62JOJnJnBsVFx/8E/+pry5CiPsEvlfzxyA8sLUz7CUQoS bBmdwGw6K34n40MiVi01Y24yxXXCOYCENMVMxVVJy9SbU7CBSAUR52WwLveZPA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4dr02d6cyjz11wk for ; Tue, 13 Jan 2026 06:39:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3e37d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 13 Jan 2026 06:39:05 +0000 To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Hiroki Tagato Subject: git: c766a64796dd - main - x11/quickshell: Add port: Building blocks for your desktop List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-main@freebsd.org Sender: owner-dev-commits-ports-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: tagattie X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c766a64796dd0f7deedc810adf30eb451a339bf4 Auto-Submitted: auto-generated Date: Tue, 13 Jan 2026 06:39:05 +0000 Message-Id: <6965e889.3e37d.53633b7c@gitrepo.freebsd.org> The branch main has been updated by tagattie: URL: https://cgit.FreeBSD.org/ports/commit/?id=c766a64796dd0f7deedc810adf30eb451a339bf4 commit c766a64796dd0f7deedc810adf30eb451a339bf4 Author: Hiroki Tagato AuthorDate: 2026-01-13 06:36:48 +0000 Commit: Hiroki Tagato CommitDate: 2026-01-13 06:38:54 +0000 x11/quickshell: Add port: Building blocks for your desktop Quickshell is a toolkit for building status bars, widgets, lockscreens, and other desktop components using QtQuick. It can be used alongside your wayland compositor or window manager to build a complete desktop environment. WWW: https://quickshell.org/ --- x11/Makefile | 1 + x11/quickshell/Makefile | 71 ++++++++++++++++++++ x11/quickshell/distinfo | 3 + .../extra-patch-src_wayland_buffer_dmabuf.cpp | 26 ++++++++ x11/quickshell/files/patch-src_core_logging.cpp | 77 ++++++++++++++++++++++ x11/quickshell/files/patch-src_core_paths.cpp | 20 ++++++ .../files/patch-src_core_toolsupport.cpp | 11 ++++ .../files/patch-src_services_pam_conversation.cpp | 10 +++ .../files/patch-src_services_pam_qml.hpp | 12 ++++ .../files/patch-src_services_pam_subprocess.cpp | 24 +++++++ x11/quickshell/pkg-descr | 4 ++ x11/quickshell/pkg-plist | 62 +++++++++++++++++ 12 files changed, 321 insertions(+) diff --git a/x11/Makefile b/x11/Makefile index c528bd4705b2..20a940c56a77 100644 --- a/x11/Makefile +++ b/x11/Makefile @@ -374,6 +374,7 @@ SUBDIR += qt5-qev SUBDIR += qt5-x11extras SUBDIR += qterminal + SUBDIR += quickshell SUBDIR += remontoire SUBDIR += rendercheck SUBDIR += rgb diff --git a/x11/quickshell/Makefile b/x11/quickshell/Makefile new file mode 100644 index 000000000000..5134f79baeb1 --- /dev/null +++ b/x11/quickshell/Makefile @@ -0,0 +1,71 @@ +PORTNAME= quickshell +DISTVERSIONPREFIX= v +DISTVERSION= 0.2.1 +CATEGORIES= x11 +MASTER_SITES= https://git.outfoxxed.me/${PORTNAME}/${PORTNAME}/archive/${DISTVERSIONFULL}${EXTRACT_SUFX}?dummy=/ + +MAINTAINER= tagattie@FreeBSD.org +COMMENT= Building blocks for your desktop +WWW= https://quickshell.org/ + +LICENSE= LGPL3 +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= ${LOCALBASE}/share/cmake/CLI11/CLI11Config.cmake:devel/cli11 \ + ${LOCALBASE}/lib/cmake/SPIRV-Tools/SPIRV-ToolsConfig.cmake:graphics/spirv-tools +LIB_DEPENDS= libxkbcommon.so:x11/libxkbcommon + +USES= cmake:testing display:test gl localbase:ldflags pkgconfig qt:6 + +USE_GL= opengl +USE_QT= 5compat base declarative imageformats multimedia svg \ + shadertools:build + +CMAKE_ARGS= -DDISTRIBUTOR:STRING="FreeBSD ports/packages" \ + -DINSTALL_QML_PREFIX:STRING=${QT_QMLDIR_REL} \ + -DGIT_REVISION:STRING=${GIT_COMMIT_HASH} +CMAKE_OFF= DISTRIBUTOR_DEBUGINFO_AVAILABLE \ + CRASH_REPORTER \ + USE_JEMALLOC +CMAKE_BUILD_TYPE= RelWithDebInfo + +STRIP= # empty + +WRKSRC= ${WRKDIR}/${PORTNAME} + +PORTDOCS= CONTRIBUTING.md README.md + +OPTIONS_DEFINE= DOCS PIPEWIRE WAYLAND X11 +OPTIONS_DEFAULT=PIPEWIRE WAYLAND X11 +OPTIONS_SUB= yes + +PIPEWIRE_LIB_DEPENDS= libpipewire-0.3.so:multimedia/pipewire +PIPEWIRE_CMAKE_BOOL= SERVICE_PIPEWIRE +WAYLAND_BUILD_DEPENDS= wayland-scanner:graphics/wayland \ + wayland-protocols>0:graphics/wayland-protocols +WAYLAND_LIB_DEPENDS= libdrm.so:graphics/libdrm \ + libwayland-client.so:graphics/wayland +WAYLAND_USE= gl=egl,gbm,gl \ + qt=wayland +WAYLAND_CMAKE_BOOL= WAYLAND +X11_LIB_DEPENDS= libdrm.so:graphics/libdrm +X11_USES= xorg +X11_USE= gl=egl,gbm,gl \ + xorg=xcb +X11_CMAKE_BOOL= X11 + +GIT_COMMIT_HASH=a1a150fab00a93ea983aaca5df55304bc837f51b + +.if ${OPSYS} == FreeBSD && ${ARCH} == i386 +EXTRA_PATCHES= ${PATCHDIR}/extra-patch-src_wayland_buffer_dmabuf.cpp +.endif + +post-install: + @${RM} ${STAGEDIR}${PREFIX}/bin/qs + @${RLN} ${STAGEDIR}${PREFIX}/bin/quickshell ${STAGEDIR}${PREFIX}/bin/qs + +post-install-DOCS-on: + @${MKDIR} ${STAGEDIR}${DOCSDIR} + ${INSTALL_MAN} ${PORTDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR} + +.include diff --git a/x11/quickshell/distinfo b/x11/quickshell/distinfo new file mode 100644 index 000000000000..7ac167fa9027 --- /dev/null +++ b/x11/quickshell/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1768222570 +SHA256 (quickshell-v0.2.1.tar.gz) = d815c5f99f4a0a28545ffaa90464420c773b7c0ab62f713d9d8735a8e7282ca7 +SIZE (quickshell-v0.2.1.tar.gz) = 403070 diff --git a/x11/quickshell/files/extra-patch-src_wayland_buffer_dmabuf.cpp b/x11/quickshell/files/extra-patch-src_wayland_buffer_dmabuf.cpp new file mode 100644 index 000000000000..e2234d50c41d --- /dev/null +++ b/x11/quickshell/files/extra-patch-src_wayland_buffer_dmabuf.cpp @@ -0,0 +1,26 @@ +--- src/wayland/buffer/dmabuf.cpp.orig 2026-01-13 05:59:50 UTC ++++ src/wayland/buffer/dmabuf.cpp +@@ -599,9 +599,9 @@ WlBufferQSGTexture* WlDmaBuffer::createQsgTexture(QQui + + // clang-format off + auto attribs = std::vector { +- EGL_WIDTH, this->width, +- EGL_HEIGHT, this->height, +- EGL_LINUX_DRM_FOURCC_EXT, this->format, ++ EGL_WIDTH, static_cast(this->width), ++ EGL_HEIGHT, static_cast(this->height), ++ EGL_LINUX_DRM_FOURCC_EXT, static_cast(this->format), + }; + // clang-format on + +@@ -617,8 +617,8 @@ WlBufferQSGTexture* WlDmaBuffer::createQsgTexture(QQui + // clang-format off + attribs.insert(attribs.end(), { + names.fd, plane.fd, +- names.offset, plane.offset, +- names.pitch, plane.stride, ++ names.offset, static_cast(plane.offset), ++ names.pitch, static_cast(plane.stride), + }); + // clang-format on + diff --git a/x11/quickshell/files/patch-src_core_logging.cpp b/x11/quickshell/files/patch-src_core_logging.cpp new file mode 100644 index 000000000000..eda74904e917 --- /dev/null +++ b/x11/quickshell/files/patch-src_core_logging.cpp @@ -0,0 +1,77 @@ +--- src/core/logging.cpp.orig 2025-10-12 00:14:14 UTC ++++ src/core/logging.cpp +@@ -27,7 +27,16 @@ + #include + #include + #include ++#if defined(__linux__) + #include ++#else ++#include ++#include ++#if defined(__NetBSD__) || defined(__DragonFly__) ++#include ++#include ++#endif ++#endif + + #include "instanceinfo.hpp" + #include "logcat.hpp" +@@ -389,7 +398,7 @@ void ThreadLogging::initFs() { + delete detailedFile; + detailedFile = nullptr; + } else { +- auto lock = flock { ++ struct flock lock { + .l_type = F_WRLCK, + .l_whence = SEEK_SET, + .l_start = 0, +@@ -411,7 +420,19 @@ void ThreadLogging::initFs() { + auto* oldFile = this->file; + if (oldFile) { + oldFile->seek(0); ++#if defined(__linux__) + sendfile(file->handle(), oldFile->handle(), nullptr, oldFile->size()); ++#elif defined(__FreeBSD__) ++ copy_file_range(oldFile->handle(), nullptr, file->handle(), nullptr, oldFile->size(), 0); ++#elif defined(__NetBSD__) || defined(__DragonFly__) ++ sendfile(oldFile->handle(), file->handle(), 0, oldFile->size(), nullptr, nullptr, 0); ++#elif defined(__OpenBSD__) ++ constexpr size_t BUF_SIZE = 1 << 20; ++ char buf[BUF_SIZE]; ++ ssize_t r = read(oldFile->handle(), buf, oldFile->size() > BUF_SIZE ? BUF_SIZE : (size_t)oldFile->size()); ++ if (r > 0) ++ write(file->handle(), buf, r); ++#endif + } + + this->file = file; +@@ -423,7 +444,19 @@ void ThreadLogging::initFs() { + auto* oldFile = this->detailedFile; + if (oldFile) { + oldFile->seek(0); ++#if defined(__linux__) + sendfile(detailedFile->handle(), oldFile->handle(), nullptr, oldFile->size()); ++#elif defined(__FreeBSD__) ++ copy_file_range(oldFile->handle(), nullptr, detailedFile->handle(), nullptr, oldFile->size(), 0); ++#elif defined(__NetBSD__) || defined(__DragonFly__) ++ sendfile(oldFile->handle(), detailedFile->handle(), 0, oldFile->size(), nullptr, nullptr, 0); ++#elif defined(__OpenBSD__) ++ constexpr size_t BUF_SIZE = 1 << 20; ++ char buf[BUF_SIZE]; ++ ssize_t r = read(oldFile->handle(), buf, oldFile->size() > BUF_SIZE ? BUF_SIZE : (size_t)oldFile->size()); ++ if (r > 0) ++ write(detailedFile->handle(), buf, r); ++#endif + } + + crash::CrashInfo::INSTANCE.logFd = detailedFile->handle(); +@@ -886,7 +919,7 @@ void LogFollower::FcntlWaitThread::run() { + } + + void LogFollower::FcntlWaitThread::run() { +- auto lock = flock { ++ struct flock lock { + .l_type = F_RDLCK, // won't block other read locks when we take it + .l_whence = SEEK_SET, + .l_start = 0, diff --git a/x11/quickshell/files/patch-src_core_paths.cpp b/x11/quickshell/files/patch-src_core_paths.cpp new file mode 100644 index 000000000000..302d5948a8ff --- /dev/null +++ b/x11/quickshell/files/patch-src_core_paths.cpp @@ -0,0 +1,20 @@ +--- src/core/paths.cpp.orig 2025-10-12 00:14:14 UTC ++++ src/core/paths.cpp +@@ -346,7 +346,7 @@ void QsPaths::createLock() { + return; + } + +- auto lock = flock { ++ struct flock lock { + .l_type = F_WRLCK, + .l_whence = SEEK_SET, + .l_start = 0, +@@ -373,7 +373,7 @@ bool QsPaths::checkLock(const QString& path, InstanceL + auto file = QFile(QDir(path).filePath("instance.lock")); + if (!file.open(QFile::ReadOnly)) return false; + +- auto lock = flock { ++ struct flock lock { + .l_type = F_WRLCK, + .l_whence = SEEK_SET, + .l_start = 0, diff --git a/x11/quickshell/files/patch-src_core_toolsupport.cpp b/x11/quickshell/files/patch-src_core_toolsupport.cpp new file mode 100644 index 000000000000..15271acf6dd8 --- /dev/null +++ b/x11/quickshell/files/patch-src_core_toolsupport.cpp @@ -0,0 +1,11 @@ +--- src/core/toolsupport.cpp.orig 2025-10-12 00:14:14 UTC ++++ src/core/toolsupport.cpp +@@ -54,7 +54,7 @@ bool QmlToolingSupport::lockTooling() { + return false; + } + +- auto lock = flock { ++ struct flock lock { + .l_type = F_WRLCK, + .l_whence = SEEK_SET, // NOLINT (fcntl.h??) + .l_start = 0, diff --git a/x11/quickshell/files/patch-src_services_pam_conversation.cpp b/x11/quickshell/files/patch-src_services_pam_conversation.cpp new file mode 100644 index 000000000000..8269b0742fa1 --- /dev/null +++ b/x11/quickshell/files/patch-src_services_pam_conversation.cpp @@ -0,0 +1,10 @@ +--- src/services/pam/conversation.cpp.orig 2026-01-12 13:51:40 UTC ++++ src/services/pam/conversation.cpp +@@ -7,6 +7,7 @@ + #include + #include + #include ++#include + + #include "../../core/logcat.hpp" + #include "ipc.hpp" diff --git a/x11/quickshell/files/patch-src_services_pam_qml.hpp b/x11/quickshell/files/patch-src_services_pam_qml.hpp new file mode 100644 index 000000000000..7e91f062bda4 --- /dev/null +++ b/x11/quickshell/files/patch-src_services_pam_qml.hpp @@ -0,0 +1,12 @@ +--- src/services/pam/qml.hpp.orig 2025-10-12 00:14:14 UTC ++++ src/services/pam/qml.hpp +@@ -6,7 +6,9 @@ + #include + #include + #include ++#if defined(__linux__) + #include ++#endif + #include + + #include "conversation.hpp" diff --git a/x11/quickshell/files/patch-src_services_pam_subprocess.cpp b/x11/quickshell/files/patch-src_services_pam_subprocess.cpp new file mode 100644 index 000000000000..89f0e2ee7830 --- /dev/null +++ b/x11/quickshell/files/patch-src_services_pam_subprocess.cpp @@ -0,0 +1,24 @@ +--- src/services/pam/subprocess.cpp.orig 2025-10-12 00:14:14 UTC ++++ src/services/pam/subprocess.cpp +@@ -7,7 +7,9 @@ + #include + #include + #include ++#if defined(__linux__) + #include ++#endif + #include + #include + +@@ -83,7 +85,11 @@ PamIpcExitCode PamSubprocess::exec(const char* configD + logIf(this->log) << "Starting pam session for user \"" << user << "\" with config \"" << config + << "\" in dir \"" << configDir << "\"" << std::endl; + ++#if defined(__linux__) + auto result = pam_start_confdir(config, user, &conv, configDir, &handle); ++#else ++ auto result = pam_start(config, user, &conv, &handle); ++#endif + + if (result != PAM_SUCCESS) { + logIf(true) << "Unable to start pam conversation with error \"" << pam_strerror(handle, result) diff --git a/x11/quickshell/pkg-descr b/x11/quickshell/pkg-descr new file mode 100644 index 000000000000..51feff797655 --- /dev/null +++ b/x11/quickshell/pkg-descr @@ -0,0 +1,4 @@ +Quickshell is a toolkit for building status bars, widgets, +lockscreens, and other desktop components using QtQuick. It can be +used alongside your wayland compositor or window manager to build a +complete desktop environment. diff --git a/x11/quickshell/pkg-plist b/x11/quickshell/pkg-plist new file mode 100644 index 000000000000..1b531398a880 --- /dev/null +++ b/x11/quickshell/pkg-plist @@ -0,0 +1,62 @@ +bin/qs +bin/quickshell +%%QT_QMLDIR%%/Quickshell/Bluetooth/qmldir +%%QT_QMLDIR%%/Quickshell/Bluetooth/quickshell-bluetooth.qmltypes +%%QT_QMLDIR%%/Quickshell/DBusMenu/qmldir +%%QT_QMLDIR%%/Quickshell/DBusMenu/quickshell-dbusmenu.qmltypes +%%WAYLAND%%%%QT_QMLDIR%%/Quickshell/Hyprland/_FocusGrab/qmldir +%%WAYLAND%%%%QT_QMLDIR%%/Quickshell/Hyprland/_FocusGrab/quickshell-hyprland-focus-grab.qmltypes +%%WAYLAND%%%%QT_QMLDIR%%/Quickshell/Hyprland/_GlobalShortcuts/qmldir +%%WAYLAND%%%%QT_QMLDIR%%/Quickshell/Hyprland/_GlobalShortcuts/quickshell-hyprland-global-shortcuts.qmltypes +%%WAYLAND%%%%QT_QMLDIR%%/Quickshell/Hyprland/_Ipc/qmldir +%%WAYLAND%%%%QT_QMLDIR%%/Quickshell/Hyprland/_Ipc/quickshell-hyprland-ipc.qmltypes +%%WAYLAND%%%%QT_QMLDIR%%/Quickshell/Hyprland/_SurfaceExtensions/qmldir +%%WAYLAND%%%%QT_QMLDIR%%/Quickshell/Hyprland/_SurfaceExtensions/quickshell-hyprland-surface-extensions.qmltypes +%%WAYLAND%%%%QT_QMLDIR%%/Quickshell/Hyprland/qmldir +%%WAYLAND%%%%QT_QMLDIR%%/Quickshell/Hyprland/quickshell-hyprland.qmltypes +%%X11%%%%QT_QMLDIR%%/Quickshell/I3/_Ipc/qmldir +%%X11%%%%QT_QMLDIR%%/Quickshell/I3/_Ipc/quickshell-i3-ipc.qmltypes +%%X11%%%%QT_QMLDIR%%/Quickshell/I3/qmldir +%%X11%%%%QT_QMLDIR%%/Quickshell/I3/quickshell-i3.qmltypes +%%QT_QMLDIR%%/Quickshell/Io/FileView.qml +%%QT_QMLDIR%%/Quickshell/Io/qmldir +%%QT_QMLDIR%%/Quickshell/Io/quickshell-io.qmltypes +%%QT_QMLDIR%%/Quickshell/Services/Greetd/qmldir +%%QT_QMLDIR%%/Quickshell/Services/Greetd/quickshell-service-greetd.qmltypes +%%QT_QMLDIR%%/Quickshell/Services/Mpris/qmldir +%%QT_QMLDIR%%/Quickshell/Services/Mpris/quickshell-service-mpris.qmltypes +%%QT_QMLDIR%%/Quickshell/Services/Notifications/qmldir +%%QT_QMLDIR%%/Quickshell/Services/Notifications/quickshell-service-notifications.qmltypes +%%QT_QMLDIR%%/Quickshell/Services/Pam/qmldir +%%QT_QMLDIR%%/Quickshell/Services/Pam/quickshell-service-pam.qmltypes +%%PIPEWIRE%%%%QT_QMLDIR%%/Quickshell/Services/Pipewire/qmldir +%%PIPEWIRE%%%%QT_QMLDIR%%/Quickshell/Services/Pipewire/quickshell-service-pipewire.qmltypes +%%QT_QMLDIR%%/Quickshell/Services/SystemTray/qmldir +%%QT_QMLDIR%%/Quickshell/Services/SystemTray/quickshell-service-statusnotifier.qmltypes +%%QT_QMLDIR%%/Quickshell/Services/UPower/qmldir +%%QT_QMLDIR%%/Quickshell/Services/UPower/quickshell-service-upower.qmltypes +%%WAYLAND%%%%QT_QMLDIR%%/Quickshell/Wayland/_Screencopy/qmldir +%%WAYLAND%%%%QT_QMLDIR%%/Quickshell/Wayland/_Screencopy/quickshell-wayland-screencopy.qmltypes +%%WAYLAND%%%%QT_QMLDIR%%/Quickshell/Wayland/_ToplevelManagement/qmldir +%%WAYLAND%%%%QT_QMLDIR%%/Quickshell/Wayland/_ToplevelManagement/quickshell-wayland-toplevel-management.qmltypes +%%WAYLAND%%%%QT_QMLDIR%%/Quickshell/Wayland/_WlrLayerShell/qmldir +%%WAYLAND%%%%QT_QMLDIR%%/Quickshell/Wayland/_WlrLayerShell/quickshell-wayland-layershell.qmltypes +%%WAYLAND%%%%QT_QMLDIR%%/Quickshell/Wayland/qmldir +%%WAYLAND%%%%QT_QMLDIR%%/Quickshell/Wayland/quickshell-wayland.qmltypes +%%QT_QMLDIR%%/Quickshell/Widgets/ClippingRectangle.qml +%%QT_QMLDIR%%/Quickshell/Widgets/ClippingWrapperRectangle.qml +%%QT_QMLDIR%%/Quickshell/Widgets/ClippingWrapperRectangleInternal.qml +%%QT_QMLDIR%%/Quickshell/Widgets/IconImage.qml +%%QT_QMLDIR%%/Quickshell/Widgets/WrapperItem.qml +%%QT_QMLDIR%%/Quickshell/Widgets/WrapperMouseArea.qml +%%QT_QMLDIR%%/Quickshell/Widgets/WrapperRectangle.qml +%%QT_QMLDIR%%/Quickshell/Widgets/qmldir +%%QT_QMLDIR%%/Quickshell/Widgets/quickshell-widgets.qmltypes +%%X11%%%%QT_QMLDIR%%/Quickshell/X11/qmldir +%%X11%%%%QT_QMLDIR%%/Quickshell/X11/quickshell-x11.qmltypes +%%QT_QMLDIR%%/Quickshell/_Window/qmldir +%%QT_QMLDIR%%/Quickshell/_Window/quickshell-window.qmltypes +%%QT_QMLDIR%%/Quickshell/qmldir +%%QT_QMLDIR%%/Quickshell/quickshell-core.qmltypes +share/applications/org.quickshell.desktop +share/icons/hicolor/scalable/apps/org.quickshell.svg