diff --git a/gui-apps/noctalia-qs/Manifest b/gui-apps/noctalia-qs/Manifest
index 34dc1f18da..48f09f8855 100644
--- a/gui-apps/noctalia-qs/Manifest
+++ b/gui-apps/noctalia-qs/Manifest
@@ -1,2 +1,3 @@
+DIST noctalia-qs-0.0.10.tar.gz 508009 BLAKE2B a138e267016d9ff30a73ae45671a6b32c3b45f83428c84e457c4ea4ffed7d3c249bbf9558c4bf15fc974dbe123b1c1dfb0c1bb28fc60340048e80585c53593f1 SHA512 01f88e466a8bc19a04f48afef73e4536333b3ad0493e51b9a01ca5e41708b9e90eae2ca6a8c53eac204d00c6dfd34ba25f45e8e9bf135761396b94d1ab9933c0
DIST noctalia-qs-0.0.8.tar.gz 505340 BLAKE2B db1b6f8d3e1adfd3ea6aaae7402579c659ac78d007ac2c125537703be1409087f3f357414f098f9c60055972069493bab7b2254a81d6a02ab9f99f1f9febaee3 SHA512 2202435f6b455afa26e6cc4b73f02db461dc95445a64d80a523f3a8cc4f1e3c1e1c0fb07989b74fd06520d79ea55f1a3ab2dc95cf6820a5551bc4420ec920d9d
DIST noctalia-qs-0.0.9.tar.gz 510170 BLAKE2B c430ec923919858b381c6111d03e8e1233900d2fea79f60fd13cdaaaa5e3254ff0c332989948fa8ac33311e95b32bc7e5af87714c03da28b8c736be16e4daade SHA512 48f4ffda4cc2229890ac07a68661ff2e78e13d48ff0c195aead8fe475b8af49486cfd7fb33c5f3bb855b72cbe87a70a6a90abb70c80b72195318a5061cedad03
diff --git a/gui-apps/noctalia-qs/metadata.xml b/gui-apps/noctalia-qs/metadata.xml
index a1b3d2984f..f6a61600e7 100644
--- a/gui-apps/noctalia-qs/metadata.xml
+++ b/gui-apps/noctalia-qs/metadata.xml
@@ -11,24 +11,28 @@
It serves as the shell framework powering Noctalia Shell.
noctalia-dev/noctalia-qs
-
+
\ No newline at end of file
diff --git a/gui-apps/noctalia-qs/noctalia-qs-0.0.10.ebuild b/gui-apps/noctalia-qs/noctalia-qs-0.0.10.ebuild
new file mode 100644
index 0000000000..43d265549c
--- /dev/null
+++ b/gui-apps/noctalia-qs/noctalia-qs-0.0.10.ebuild
@@ -0,0 +1,127 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit branding cmake
+
+GIT_REVISION=12dba9653ae2c0dd24bf2633e2572a8093b0df5e
+
+DESCRIPTION="Toolkit for building desktop widgets using QtQuick"
+HOMEPAGE="https://quickshell.org/"
+
+if [[ "${PV}" = *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/noctalia-dev/noctalia-qs.git"
+else
+ SRC_URI="https://github.com/noctalia-dev/noctalia-qs/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="LGPL-3"
+SLOT="0"
+
+# Upstream recommends leaving all build options enabled by default
+IUSE="
+ +bluetooth +dwl +greetd +hyprland +i3 +jemalloc +layer-shell
+ +mpris +network +niri +notifications +pam +pipewire +polkit
+ +screencopy +session-lock +sockets +tray +toplevel-management
+ +upower +wayland +X
+"
+REQUIRED_USE="
+ hyprland? ( wayland )
+ layer-shell? ( wayland )
+ niri? ( wayland )
+ screencopy? ( wayland )
+ session-lock? ( wayland )
+ toplevel-management? ( wayland )
+"
+
+RDEPEND="
+ !gui-apps/quickshell
+ dev-qt/qtbase:6=[dbus,vulkan]
+ dev-qt/qtdeclarative:6=
+ dev-qt/qtsvg:6=
+ bluetooth? ( net-wireless/bluez )
+ jemalloc? ( dev-libs/jemalloc )
+ network? ( net-misc/networkmanager )
+ pam? ( sys-libs/pam )
+ pipewire? ( media-video/pipewire )
+ polkit? (
+ dev-libs/glib
+ sys-auth/polkit
+ )
+ screencopy? (
+ media-libs/mesa
+ x11-libs/libdrm
+ )
+ wayland? (
+ dev-libs/wayland
+ dev-qt/qtwayland:6=
+ )
+ X? ( x11-libs/libxcb )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ dev-cpp/cli11
+ dev-qt/qtshadertools:6
+ dev-util/spirv-tools
+ virtual/pkgconfig
+ screencopy? ( dev-util/vulkan-headers )
+ wayland? (
+ dev-libs/wayland-protocols
+ dev-util/wayland-scanner
+ )
+"
+
+DOCS=( README.md changelog/ )
+
+src_configure() {
+ # hyprland controls all Hyprland sub-features as a group.
+ # i3 controls I3/Sway IPC.
+ # niri controls Niri IPC.
+ # screencopy controls all screencopy backends (icc, wlr, hyprland-toplevel).
+ local _hyprland=$(usex hyprland)
+ local _i3=$(usex i3)
+ local _niri=$(usex niri)
+ local _screencopy=$(usex screencopy)
+
+ local mycmakeargs=(
+ -DDISTRIBUTOR="${BRANDING_OS_NAME} GURU"
+ -DINSTALL_QML_PREFIX="$(get_libdir)/qt6/qml"
+ -DGIT_REVISION=${GIT_REVISION}
+ -DCRASH_HANDLER=no # dev-cpp/cpptrace::gentoo does not have required use flags
+ -DBLUETOOTH=$(usex bluetooth)
+ -DDWL=$(usex dwl)
+ -DHYPRLAND=${_hyprland}
+ -DHYPRLAND_FOCUS_GRAB=${_hyprland}
+ -DHYPRLAND_GLOBAL_SHORTCUTS=${_hyprland}
+ -DHYPRLAND_IPC=${_hyprland}
+ -DHYPRLAND_SURFACE_EXTENSIONS=${_hyprland}
+ -DI3=${_i3}
+ -DI3_IPC=${_i3}
+ -DNETWORK=$(usex network)
+ -DNIRI=${_niri}
+ -DNIRI_IPC=${_niri}
+ -DSCREENCOPY=${_screencopy}
+ -DSCREENCOPY_HYPRLAND_TOPLEVEL=${_screencopy}
+ -DSCREENCOPY_ICC=${_screencopy}
+ -DSCREENCOPY_WLR=${_screencopy}
+ -DSERVICE_GREETD=$(usex greetd)
+ -DSERVICE_MPRIS=$(usex mpris)
+ -DSERVICE_NOTIFICATIONS=$(usex notifications)
+ -DSERVICE_PAM=$(usex pam)
+ -DSERVICE_PIPEWIRE=$(usex pipewire)
+ -DSERVICE_POLKIT=$(usex polkit)
+ -DSERVICE_STATUS_NOTIFIER=$(usex tray)
+ -DSERVICE_UPOWER=$(usex upower)
+ -DSOCKETS=$(usex sockets)
+ -DUSE_JEMALLOC=$(usex jemalloc)
+ -DWAYLAND=$(usex wayland)
+ -DWAYLAND_SESSION_LOCK=$(usex session-lock)
+ -DWAYLAND_TOPLEVEL_MANAGEMENT=$(usex toplevel-management)
+ -DWAYLAND_WLR_LAYERSHELL=$(usex layer-shell)
+ -DX11=$(usex X)
+ )
+ cmake_src_configure
+}
diff --git a/gui-apps/noctalia-qs/noctalia-qs-9999.ebuild b/gui-apps/noctalia-qs/noctalia-qs-9999.ebuild
index 7d432e9aa2..4d3c637f6f 100644
--- a/gui-apps/noctalia-qs/noctalia-qs-9999.ebuild
+++ b/gui-apps/noctalia-qs/noctalia-qs-9999.ebuild
@@ -21,56 +21,54 @@ SLOT="0"
# Upstream recommends leaving all build options enabled by default
IUSE="
- +jemalloc +sockets
- +wayland +layer-shell +session-lock +toplevel-management
- +hyprland +screencopy
- +X +i3
- +tray +pipewire +mpris +pam +polkit +greetd +upower +notifications
- +bluetooth +network
- lto
+ +bluetooth +dwl +greetd +hyprland +i3 +jemalloc +layer-shell
+ +mpris +network +niri +notifications +pam +pipewire +polkit
+ +screencopy +session-lock +sockets +tray +toplevel-management
+ +upower +wayland +X
"
REQUIRED_USE="
+ hyprland? ( wayland )
layer-shell? ( wayland )
+ niri? ( wayland )
+ screencopy? ( wayland )
session-lock? ( wayland )
toplevel-management? ( wayland )
- hyprland? ( wayland )
- screencopy? ( wayland )
"
RDEPEND="
!gui-apps/quickshell
dev-qt/qtbase:6=[dbus,vulkan]
- dev-qt/qtsvg:6=
dev-qt/qtdeclarative:6=
+ dev-qt/qtsvg:6=
+ bluetooth? ( net-wireless/bluez )
jemalloc? ( dev-libs/jemalloc )
+ network? ( net-misc/networkmanager )
+ pam? ( sys-libs/pam )
+ pipewire? ( media-video/pipewire )
+ polkit? (
+ dev-libs/glib
+ sys-auth/polkit
+ )
+ screencopy? (
+ media-libs/mesa
+ x11-libs/libdrm
+ )
wayland? (
dev-libs/wayland
dev-qt/qtwayland:6=
)
- screencopy? (
- x11-libs/libdrm
- media-libs/mesa
- )
X? ( x11-libs/libxcb )
- pipewire? ( media-video/pipewire )
- pam? ( sys-libs/pam )
- polkit? (
- sys-auth/polkit
- dev-libs/glib
- )
- bluetooth? ( net-wireless/bluez )
- network? ( net-misc/networkmanager )
"
DEPEND="${RDEPEND}"
BDEPEND="
- virtual/pkgconfig
dev-cpp/cli11
- dev-util/spirv-tools
dev-qt/qtshadertools:6
+ dev-util/spirv-tools
+ virtual/pkgconfig
screencopy? ( dev-util/vulkan-headers )
wayland? (
- dev-util/wayland-scanner
dev-libs/wayland-protocols
+ dev-util/wayland-scanner
)
"
@@ -79,45 +77,49 @@ DOCS=( README.md changelog/ )
src_configure() {
# hyprland controls all Hyprland sub-features as a group.
# i3 controls I3/Sway IPC.
+ # niri controls Niri IPC.
# screencopy controls all screencopy backends (icc, wlr, hyprland-toplevel).
local _hyprland=$(usex hyprland)
- local _screencopy=$(usex screencopy)
local _i3=$(usex i3)
+ local _niri=$(usex niri)
+ local _screencopy=$(usex screencopy)
local mycmakeargs=(
-DDISTRIBUTOR="${BRANDING_OS_NAME} GURU"
-DINSTALL_QML_PREFIX="$(get_libdir)/qt6/qml"
-DGIT_REVISION=${EGIT_COMMIT}
-DCRASH_HANDLER=no # dev-cpp/cpptrace::gentoo does not have required use flags
- -DUSE_JEMALLOC=$(usex jemalloc)
- -DSOCKETS=$(usex sockets)
- -DWAYLAND=$(usex wayland)
- -DWAYLAND_WLR_LAYERSHELL=$(usex layer-shell)
- -DWAYLAND_SESSION_LOCK=$(usex session-lock)
- -DWAYLAND_TOPLEVEL_MANAGEMENT=$(usex toplevel-management)
+ -DBLUETOOTH=$(usex bluetooth)
+ -DDWL=$(usex dwl)
-DHYPRLAND=${_hyprland}
- -DHYPRLAND_IPC=${_hyprland}
- -DHYPRLAND_GLOBAL_SHORTCUTS=${_hyprland}
-DHYPRLAND_FOCUS_GRAB=${_hyprland}
+ -DHYPRLAND_GLOBAL_SHORTCUTS=${_hyprland}
+ -DHYPRLAND_IPC=${_hyprland}
-DHYPRLAND_SURFACE_EXTENSIONS=${_hyprland}
- -DSCREENCOPY=${_screencopy}
- -DSCREENCOPY_ICC=${_screencopy}
- -DSCREENCOPY_WLR=${_screencopy}
- -DSCREENCOPY_HYPRLAND_TOPLEVEL=${_screencopy}
- -DX11=$(usex X)
-DI3=${_i3}
-DI3_IPC=${_i3}
- -DSERVICE_STATUS_NOTIFIER=$(usex tray)
- -DSERVICE_PIPEWIRE=$(usex pipewire)
- -DSERVICE_MPRIS=$(usex mpris)
- -DSERVICE_PAM=$(usex pam)
- -DSERVICE_POLKIT=$(usex polkit)
- -DSERVICE_GREETD=$(usex greetd)
- -DSERVICE_UPOWER=$(usex upower)
- -DSERVICE_NOTIFICATIONS=$(usex notifications)
- -DBLUETOOTH=$(usex bluetooth)
-DNETWORK=$(usex network)
- -DLTO=$(usex lto)
+ -DNIRI=${_niri}
+ -DNIRI_IPC=${_niri}
+ -DSCREENCOPY=${_screencopy}
+ -DSCREENCOPY_HYPRLAND_TOPLEVEL=${_screencopy}
+ -DSCREENCOPY_ICC=${_screencopy}
+ -DSCREENCOPY_WLR=${_screencopy}
+ -DSERVICE_GREETD=$(usex greetd)
+ -DSERVICE_MPRIS=$(usex mpris)
+ -DSERVICE_NOTIFICATIONS=$(usex notifications)
+ -DSERVICE_PAM=$(usex pam)
+ -DSERVICE_PIPEWIRE=$(usex pipewire)
+ -DSERVICE_POLKIT=$(usex polkit)
+ -DSERVICE_STATUS_NOTIFIER=$(usex tray)
+ -DSERVICE_UPOWER=$(usex upower)
+ -DSOCKETS=$(usex sockets)
+ -DUSE_JEMALLOC=$(usex jemalloc)
+ -DWAYLAND=$(usex wayland)
+ -DWAYLAND_SESSION_LOCK=$(usex session-lock)
+ -DWAYLAND_TOPLEVEL_MANAGEMENT=$(usex toplevel-management)
+ -DWAYLAND_WLR_LAYERSHELL=$(usex layer-shell)
+ -DX11=$(usex X)
)
cmake_src_configure
}