summaryrefslogtreecommitdiff
path: root/gui-wm
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
commitb590c8d7572b727d565cc0b8ff660d43569845de (patch)
tree06f7a4102ea4e845df8b66660f252920d52952f9 /gui-wm
parent24f9cbfc4c34fdb6a6e03311674414e881ceab47 (diff)
downloadbaldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.gz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.xz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.zip
Adding metadata
Diffstat (limited to 'gui-wm')
-rw-r--r--gui-wm/dwl/Manifest3
-rw-r--r--gui-wm/dwl/dwl-0.5-r1.ebuild86
-rw-r--r--gui-wm/dwl/dwl-0.6.ebuild76
-rw-r--r--gui-wm/dwl/dwl-0.7.ebuild76
-rw-r--r--gui-wm/dwl/dwl-9999.ebuild76
-rw-r--r--gui-wm/dwl/metadata.xml14
-rw-r--r--gui-wm/gamescope/Manifest5
-rw-r--r--gui-wm/gamescope/files/gamescope-deprecated-stb.patch22
-rw-r--r--gui-wm/gamescope/files/gamescope-subprojects.patch25
-rw-r--r--gui-wm/gamescope/gamescope-3.16.24.ebuild154
-rw-r--r--gui-wm/gamescope/metadata.xml15
-rw-r--r--gui-wm/labwc/Manifest2
-rw-r--r--gui-wm/labwc/labwc-0.20.0.ebuild70
-rw-r--r--gui-wm/labwc/labwc-0.9.7.ebuild70
-rw-r--r--gui-wm/labwc/labwc-9999.ebuild70
-rw-r--r--gui-wm/labwc/metadata.xml12
-rw-r--r--gui-wm/sway/Manifest10
-rw-r--r--gui-wm/sway/files/sway-portals.conf6
-rw-r--r--gui-wm/sway/metadata.xml37
-rw-r--r--gui-wm/sway/sway-1.10.1.ebuild116
-rw-r--r--gui-wm/sway/sway-1.10.ebuild117
-rw-r--r--gui-wm/sway/sway-1.11.ebuild118
-rw-r--r--gui-wm/sway/sway-1.12.ebuild118
-rw-r--r--gui-wm/sway/sway-1.9-r1.ebuild118
-rw-r--r--gui-wm/sway/sway-9999.ebuild118
-rw-r--r--gui-wm/tinywl/Manifest10
-rw-r--r--gui-wm/tinywl/files/tinywl-0.17.4-improve-makefile.patch84
-rw-r--r--gui-wm/tinywl/metadata.xml13
-rw-r--r--gui-wm/tinywl/tinywl-0.17.4.ebuild60
-rw-r--r--gui-wm/tinywl/tinywl-0.18.0.ebuild54
-rw-r--r--gui-wm/tinywl/tinywl-0.18.1.ebuild54
-rw-r--r--gui-wm/tinywl/tinywl-0.19.2.ebuild57
-rw-r--r--gui-wm/tinywl/tinywl-0.20.0.ebuild57
-rw-r--r--gui-wm/tinywl/tinywl-9999.ebuild57
-rw-r--r--gui-wm/wayfire/Manifest1
-rw-r--r--gui-wm/wayfire/files/wayfire-0.10.0-fix-musl.patch28
-rw-r--r--gui-wm/wayfire/files/wayfire-session-226
-rw-r--r--gui-wm/wayfire/files/wayfire-session.desktop7
-rw-r--r--gui-wm/wayfire/files/wayfire.env2
-rw-r--r--gui-wm/wayfire/metadata.xml18
-rw-r--r--gui-wm/wayfire/wayfire-0.10.1.ebuild123
-rw-r--r--gui-wm/wayfire/wayfire-9999.ebuild119
42 files changed, 2304 insertions, 0 deletions
diff --git a/gui-wm/dwl/Manifest b/gui-wm/dwl/Manifest
new file mode 100644
index 000000000000..d3809c7d08e7
--- /dev/null
+++ b/gui-wm/dwl/Manifest
@@ -0,0 +1,3 @@
+DIST dwl-v0.5.tar.gz 57363 BLAKE2B 6dce89cbfa1aa1946983897bed5ac16619ac237e0f7092b588847315b849392b83643839dc5386c5bd73a36e5da55a281696a6ef13dcaec8345cb4e495c5e3b7 SHA512 7bd292559b0ecafc54bf1c1ba0c3b6b0417e8bd03bb0058f492b87295c92b50932e25621cc5f804c38ad06ffadad7bb8017872fade4a04bf617b1d4f1993aae8
+DIST dwl-v0.6.tar.gz 62677 BLAKE2B 01d010c7e5054c9a8ed0b2b03093e8eee8ff11555296819f2b42a54dd5f07507d9129e6eaf34521d5743bf172309472b52d9a0106b7badd545c75e922a115ef0 SHA512 5e5d7599438d4cdf632e7afaddb1d345c8131c9925e9e4d1b632ad52c4418b1db2c0ff6a2da4b5686607c79cf2598e26e8c7f4c8385be82b2c2355fa28c2e8fb
+DIST dwl-v0.7.tar.gz 63510 BLAKE2B 643d09b805a7c14e486828acbe33f38c31bce2cc31455afb32351f685326016e8d0eddbcba15646d6ec3192c538ffe52dad97693a579ec8125d9537830b681b5 SHA512 d2ec9467bb7758ea52e0face555cb505624062eb66c8959b59e715b7d1c7bb74c649029f365c9bfd07d7b5806fdef018f555d7e64bd62e7e413ead45b5d73986
diff --git a/gui-wm/dwl/dwl-0.5-r1.ebuild b/gui-wm/dwl/dwl-0.5-r1.ebuild
new file mode 100644
index 000000000000..f94a2aa83609
--- /dev/null
+++ b/gui-wm/dwl/dwl-0.5-r1.ebuild
@@ -0,0 +1,86 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit savedconfig toolchain-funcs
+
+MY_P="${PN}-v${PV}"
+
+WLROOTS_DEP="
+ >=gui-libs/wlroots-0.17:=[libinput,session,X?]
+ <gui-libs/wlroots-0.18:=
+"
+
+if [[ ${PV} == *9999* ]]; then
+ EGIT_REPO_URI="https://codeberg.org/dwl/dwl.git"
+ inherit git-r3
+
+ # 9999-r0: main (latest stable wlroots release)
+ # 9999-r1: wlroots-next (wlroots-9999)
+ case ${PVR} in
+ 9999)
+ EGIT_BRANCH=main
+ ;;
+ 9999-r1)
+ EGIT_BRANCH=wlroots-next
+ WLROOTS_DEP="~gui-libs/wlroots-9999:=[libinput,session,X?]"
+ ;;
+ esac
+else
+ SRC_URI="https://codeberg.org/${PN}/${PN}/releases/download/v${PV}/${MY_P}.tar.gz"
+ S="${WORKDIR}/${MY_P}"
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+fi
+
+DESCRIPTION="dwm for Wayland"
+HOMEPAGE="https://codeberg.org/dwl/dwl"
+
+LICENSE="CC0-1.0 GPL-3+ MIT"
+SLOT="0"
+IUSE="X"
+
+CDEPEND="
+ ${WLROOTS_DEP}
+ dev-libs/libinput:=
+ dev-libs/wayland
+ x11-libs/libxkbcommon
+ X? (
+ x11-libs/libxcb:=
+ x11-libs/xcb-util-wm
+ )
+"
+RDEPEND="
+ ${CDEPEND}
+ X? (
+ x11-base/xwayland
+ )
+"
+# uses <linux/input-event-codes.h>
+DEPEND="
+ ${CDEPEND}
+ sys-kernel/linux-headers
+"
+BDEPEND="
+ >=dev-libs/wayland-protocols-1.32
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+"
+
+src_prepare() {
+ restore_config config.h
+
+ default
+}
+
+src_compile() {
+ emake PKG_CONFIG="$(tc-getPKG_CONFIG)" CC="$(tc-getCC)" \
+ XWAYLAND="$(usev X -DXWAYLAND)" XLIBS="$(usev X "xcb xcb-icccm")" dwl
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install
+ dodoc CHANGELOG.md README.md
+
+ save_config config.h
+}
diff --git a/gui-wm/dwl/dwl-0.6.ebuild b/gui-wm/dwl/dwl-0.6.ebuild
new file mode 100644
index 000000000000..823944d46d13
--- /dev/null
+++ b/gui-wm/dwl/dwl-0.6.ebuild
@@ -0,0 +1,76 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit savedconfig toolchain-funcs
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://codeberg.org/dwl/dwl.git"
+ inherit git-r3
+else
+ MY_PV="${PV/_rc/-rc}"
+ MY_P="${PN}-v${MY_PV}"
+ SRC_URI="https://codeberg.org/${PN}/${PN}/releases/download/v${MY_PV}/${MY_P}.tar.gz"
+ S="${WORKDIR}/${MY_P}"
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+fi
+
+DESCRIPTION="dwm for Wayland"
+HOMEPAGE="https://codeberg.org/dwl/dwl"
+
+LICENSE="CC0-1.0 GPL-3+ MIT"
+SLOT="0"
+IUSE="X"
+
+if [[ ${PV} == 9999 ]]; then
+ COMMON_DEPEND="~gui-libs/wlroots-9999:=[libinput,session,X?]"
+else
+ COMMON_DEPEND="
+ >=gui-libs/wlroots-0.17:=[libinput,session,X?]
+ <gui-libs/wlroots-0.18:="
+fi
+
+COMMON_DEPEND+="
+ dev-libs/libinput:=
+ dev-libs/wayland
+ x11-libs/libxkbcommon
+ X? (
+ x11-libs/libxcb:=
+ x11-libs/xcb-util-wm
+ )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ X? (
+ x11-base/xwayland
+ )
+"
+# uses <linux/input-event-codes.h>
+DEPEND="
+ ${COMMON_DEPEND}
+ sys-kernel/linux-headers
+"
+BDEPEND="
+ >=dev-libs/wayland-protocols-1.32
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+"
+
+src_prepare() {
+ restore_config config.h
+
+ default
+}
+
+src_compile() {
+ emake PKG_CONFIG="$(tc-getPKG_CONFIG)" CC="$(tc-getCC)" \
+ XWAYLAND="$(usev X -DXWAYLAND)" XLIBS="$(usev X "xcb xcb-icccm")" dwl
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install
+ dodoc CHANGELOG.md README.md
+
+ save_config config.h
+}
diff --git a/gui-wm/dwl/dwl-0.7.ebuild b/gui-wm/dwl/dwl-0.7.ebuild
new file mode 100644
index 000000000000..673657f8b653
--- /dev/null
+++ b/gui-wm/dwl/dwl-0.7.ebuild
@@ -0,0 +1,76 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit savedconfig toolchain-funcs
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://codeberg.org/dwl/dwl.git"
+ inherit git-r3
+else
+ MY_PV="${PV/_rc/-rc}"
+ MY_P="${PN}-v${MY_PV}"
+ SRC_URI="https://codeberg.org/${PN}/${PN}/releases/download/v${MY_PV}/${MY_P}.tar.gz"
+ S="${WORKDIR}/${MY_P}"
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+fi
+
+DESCRIPTION="dwm for Wayland"
+HOMEPAGE="https://codeberg.org/dwl/dwl"
+
+LICENSE="CC0-1.0 GPL-3+ MIT"
+SLOT="0"
+IUSE="X"
+
+if [[ ${PV} == 9999 ]]; then
+ COMMON_DEPEND="~gui-libs/wlroots-9999:=[libinput,session,X?]"
+else
+ COMMON_DEPEND="
+ >=gui-libs/wlroots-0.18:=[libinput,session,X?]
+ <gui-libs/wlroots-0.19:="
+fi
+
+COMMON_DEPEND+="
+ dev-libs/libinput:=
+ dev-libs/wayland
+ x11-libs/libxkbcommon
+ X? (
+ x11-libs/libxcb:=
+ x11-libs/xcb-util-wm
+ )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ X? (
+ x11-base/xwayland
+ )
+"
+# uses <linux/input-event-codes.h>
+DEPEND="
+ ${COMMON_DEPEND}
+ sys-kernel/linux-headers
+"
+BDEPEND="
+ >=dev-libs/wayland-protocols-1.32
+ >=dev-util/wayland-scanner-1.23
+ virtual/pkgconfig
+"
+
+src_prepare() {
+ restore_config config.h
+
+ default
+}
+
+src_compile() {
+ emake PKG_CONFIG="$(tc-getPKG_CONFIG)" CC="$(tc-getCC)" \
+ XWAYLAND="$(usev X -DXWAYLAND)" XLIBS="$(usev X "xcb xcb-icccm")" dwl
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install
+ dodoc CHANGELOG.md README.md
+
+ save_config config.h
+}
diff --git a/gui-wm/dwl/dwl-9999.ebuild b/gui-wm/dwl/dwl-9999.ebuild
new file mode 100644
index 000000000000..55db23917d62
--- /dev/null
+++ b/gui-wm/dwl/dwl-9999.ebuild
@@ -0,0 +1,76 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit savedconfig toolchain-funcs
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://codeberg.org/dwl/dwl.git"
+ inherit git-r3
+else
+ MY_PV="${PV/_rc/-rc}"
+ MY_P="${PN}-v${MY_PV}"
+ SRC_URI="https://codeberg.org/${PN}/${PN}/releases/download/v${MY_PV}/${MY_P}.tar.gz"
+ S="${WORKDIR}/${MY_P}"
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+fi
+
+DESCRIPTION="dwm for Wayland"
+HOMEPAGE="https://codeberg.org/dwl/dwl"
+
+LICENSE="CC0-1.0 GPL-3+ MIT"
+SLOT="0"
+IUSE="X"
+
+if [[ ${PV} == 9999 ]]; then
+ COMMON_DEPEND="~gui-libs/wlroots-9999:=[libinput,session,X?]"
+else
+ COMMON_DEPEND="
+ >=gui-libs/wlroots-0.19:=[libinput,session,X?]
+ <gui-libs/wlroots-0.20:="
+fi
+
+COMMON_DEPEND+="
+ dev-libs/libinput:=
+ dev-libs/wayland
+ x11-libs/libxkbcommon
+ X? (
+ x11-libs/libxcb:=
+ x11-libs/xcb-util-wm
+ )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ X? (
+ x11-base/xwayland
+ )
+"
+# uses <linux/input-event-codes.h>
+DEPEND="
+ ${COMMON_DEPEND}
+ sys-kernel/linux-headers
+"
+BDEPEND="
+ >=dev-libs/wayland-protocols-1.32
+ >=dev-util/wayland-scanner-1.23
+ virtual/pkgconfig
+"
+
+src_prepare() {
+ restore_config config.h
+
+ default
+}
+
+src_compile() {
+ emake PKG_CONFIG="$(tc-getPKG_CONFIG)" CC="$(tc-getCC)" \
+ XWAYLAND="$(usev X -DXWAYLAND)" XLIBS="$(usev X "xcb xcb-icccm")" dwl
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install
+ dodoc CHANGELOG.md README.md
+
+ save_config config.h
+}
diff --git a/gui-wm/dwl/metadata.xml b/gui-wm/dwl/metadata.xml
new file mode 100644
index 000000000000..8c6509d7cd8b
--- /dev/null
+++ b/gui-wm/dwl/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>leohdz172@proton.me</email>
+ <name>Leonardo Hernández Hernández</name>
+ <description>Additionally the upstream maintainer</description>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/gui-wm/gamescope/Manifest b/gui-wm/gamescope/Manifest
new file mode 100644
index 000000000000..1d6679104702
--- /dev/null
+++ b/gui-wm/gamescope/Manifest
@@ -0,0 +1,5 @@
+DIST gamescope-3.16.24.tar.gz 914728 BLAKE2B f668a3239481064fed488e82b2e4a175892a35e266c1f9ad1b180961afc22d8ba28b5a8cac263ad29b6974ec279fa24c7d64a48807135dd9127d8b8d5ba2974f SHA512 0751640e3305f46baa3a05b9bc2312a35e086fe7c9c9871d7ae5e1c046e807d2229dcbdef16f4a3aedcc4ab364816bf8f23884a3ae62ea34090c83e2facf10dd
+DIST libliftoff-0.5.0.tar.gz 39076 BLAKE2B a5c35c734a5ba4049661ce336401bd88d393001d7c49786d486146998d39530c364f7752b53968f5ab48f5eb774fa9c4245087bdb016f459a729991377023f61 SHA512 ce808f6a087f1f629cfebef95bfc7e216a09fb409b96b3c9f6b84d9d986ce50c5d7bf5b45c68e8baa99566b3627d754c269855b6f4ec3be63ae7b9f5109d5f08
+DIST reshade-696b14cd6006ae9ca174e6164450619ace043283.tar.gz 1684777 BLAKE2B 3b2fcd1ed53dd6a8c459cf716697eec8a21f6fd9c25e4f6baa752e4226eaf35837e0f1595eef065a064bb0d76b1b067f643cd14ef896875448c99f57e10e6fb9 SHA512 7fe1fe07622efd90bd94e1755019ca47657acd07137669e00b97bf70017a58c1f699e3dec1c720caafd1296275c7a25fd2f4d6e478cebbdf48bd69f985a00cdf
+DIST vkroots-5106d8a0df95de66cc58dc1ea37e69c99afc9540.tar.gz 352651 BLAKE2B bc6c7a4f5b4f810c4d87a6cef46e73adb292bc22ae9a40666a6c7c8ab0cbc1973af405b32a5c7a3d38623c92e5d41e8472dabb744fcf31cf29118b9684dcfc32 SHA512 726e65dd0bb322d537e985ba2e504c68ef1b474574f11a5b102edcb8a7b74a6d86dea132c3b11417399a00beff9163e7aad413a389cf6073ec44d5ce6175ffc5
+DIST wlroots-c08d99437ec8bb56a703f04ad1ef199502c62d10.tar.gz 629415 BLAKE2B 3055bc42e5c41e6bcac7c3808f4f93c837ab7455631174bf1d48f686ff7936718e2a21a8ff57bd17ee72d13c29002c8991ff6d749ff800ac4f5846ab5f493e99 SHA512 1e0d6e0ced70663a3969832bcb477e4fb246dc36f13fb551edb4723e23508a302e63dbcc1ad26b01d63622f18d35bae2d6666103e838d0b034583040314f9c21
diff --git a/gui-wm/gamescope/files/gamescope-deprecated-stb.patch b/gui-wm/gamescope/files/gamescope-deprecated-stb.patch
new file mode 100644
index 000000000000..9168ed94aa6b
--- /dev/null
+++ b/gui-wm/gamescope/files/gamescope-deprecated-stb.patch
@@ -0,0 +1,22 @@
+--- a/src/reshade_effect_manager.cpp
++++ b/src/reshade_effect_manager.cpp
+@@ -14,7 +14,7 @@
+
+ #include <stb_image.h>
+ #define STB_IMAGE_RESIZE_IMPLEMENTATION
+-#include <stb_image_resize.h>
++#include <deprecated/stb_image_resize.h>
+
+ #include <unistd.h>
+ #include <sys/types.h>
+--- a/src/steamcompmgr.cpp
++++ b/src/steamcompmgr.cpp
+@@ -108,7 +108,7 @@ static const int g_nBaseCursorScale = 36;
+ #define STB_IMAGE_WRITE_IMPLEMENTATION
+ #include <stb_image.h>
+ #include <stb_image_write.h>
+-#include <stb_image_resize.h>
++#include <deprecated/stb_image_resize.h>
+
+ #define GPUVIS_TRACE_IMPLEMENTATION
+ #include "gpuvis_trace_utils.h"
diff --git a/gui-wm/gamescope/files/gamescope-subprojects.patch b/gui-wm/gamescope/files/gamescope-subprojects.patch
new file mode 100644
index 000000000000..cb9b19a5429c
--- /dev/null
+++ b/gui-wm/gamescope/files/gamescope-subprojects.patch
@@ -0,0 +1,25 @@
+From aa55fc7dce7b319f2979ad4c61493a43ac10069d Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Sun, 22 Jun 2025 22:24:34 +0100
+Subject: [PATCH] Don't pull in glm and stb as subprojects
+
+Upstream has concerns over which versions might be installed system-wide, but
+Gentoo has control over that.
+--- a/meson.build
++++ b/meson.build
+@@ -50,10 +50,8 @@ dep_x11 = dependency('x11')
+ dep_wayland = dependency('wayland-client')
+ vulkan_dep = dependency('vulkan')
+
+-glm_proj = subproject('glm')
+-glm_dep = glm_proj.get_variable('glm_dep')
+-stb_proj = subproject('stb')
+-stb_dep = stb_proj.get_variable('stb_dep')
++glm_dep = dependency('glm')
++stb_dep = dependency('stb')
+
+ if get_option('enable_openvr_support')
+ openvr_dep = dependency('openvr', version: '>= 2.7', required : false)
+--
+2.49.0
+
diff --git a/gui-wm/gamescope/gamescope-3.16.24.ebuild b/gui-wm/gamescope/gamescope-3.16.24.ebuild
new file mode 100644
index 000000000000..c71c24cf9db5
--- /dev/null
+++ b/gui-wm/gamescope/gamescope-3.16.24.ebuild
@@ -0,0 +1,154 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit fcaps meson
+
+MY_PV=$(ver_rs 3 -)
+MY_PV="${MY_PV//_/-}"
+
+DESCRIPTION="Efficient micro-compositor for running games"
+HOMEPAGE="https://github.com/ValveSoftware/gamescope"
+EGIT_SUBMODULES=( src/reshade subprojects/{libliftoff,vkroots,wlroots} )
+
+if [[ ${PV} == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/ValveSoftware/${PN}.git"
+ inherit git-r3
+else
+ RESHADE_COMMIT="696b14cd6006ae9ca174e6164450619ace043283"
+ LIBLIFTOFF_COMMIT="0.5.0" # Upstream points at this release.
+ VKROOTS_COMMIT="5106d8a0df95de66cc58dc1ea37e69c99afc9540"
+ WLROOTS_COMMIT="c08d99437ec8bb56a703f04ad1ef199502c62d10"
+ SRC_URI="
+ https://github.com/ValveSoftware/${PN}/archive/refs/tags/${MY_PV}.tar.gz -> ${P}.tar.gz
+ https://gitlab.freedesktop.org/emersion/libliftoff/-/releases/v${LIBLIFTOFF_COMMIT}/downloads/libliftoff-${LIBLIFTOFF_COMMIT}.tar.gz
+ https://github.com/Joshua-Ashton/reshade/archive/${RESHADE_COMMIT}.tar.gz -> reshade-${RESHADE_COMMIT}.tar.gz
+ https://github.com/Joshua-Ashton/vkroots/archive/${VKROOTS_COMMIT}.tar.gz -> vkroots-${VKROOTS_COMMIT}.tar.gz
+ https://github.com/Joshua-Ashton/wlroots/archive/${WLROOTS_COMMIT}.tar.gz -> wlroots-${WLROOTS_COMMIT}.tar.gz
+ "
+ KEYWORDS="~amd64"
+fi
+
+S="${WORKDIR}/${PN}-${MY_PV}"
+LICENSE="BSD-2"
+SLOT="0"
+IUSE="avif libei pipewire +sdl test +wsi-layer"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-lang/luajit:2=
+ >=dev-libs/libinput-1.14.0:=
+ >=dev-libs/wayland-1.23.1
+ gui-libs/libdecor
+ <media-libs/libdisplay-info-0.4:=
+ media-libs/vulkan-loader
+ sys-apps/hwdata
+ sys-libs/libcap
+ >=x11-libs/libdrm-2.4.109
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXcursor
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXi
+ >=x11-libs/libxkbcommon-1.8.0
+ x11-libs/libXmu
+ x11-libs/libXrender
+ x11-libs/libXres
+ x11-libs/libXtst
+ x11-libs/libXxf86vm
+ >=x11-libs/pixman-0.43.0
+ virtual/libudev
+ avif? ( >=media-libs/libavif-1.0.0:= )
+ libei? ( dev-libs/libei )
+ pipewire? ( >=media-video/pipewire-0.3:= )
+ sdl? ( media-libs/libsdl2[video,vulkan] )
+ wsi-layer? ( x11-libs/libxcb )
+"
+# For bundled wlroots.
+RDEPEND+="
+ media-libs/libglvnd
+ >=media-libs/mesa-24.1.0_rc1[opengl]
+ sys-auth/seatd:=
+ x11-base/xwayland
+ x11-libs/libxcb:=
+ x11-libs/xcb-util-wm
+"
+DEPEND="
+ ${RDEPEND}
+ >=dev-libs/wayland-protocols-1.41
+ >=dev-libs/stb-20240201-r1
+ dev-util/vulkan-headers
+ >=media-libs/glm-1.0.1
+ dev-util/spirv-headers
+ test? ( dev-cpp/catch:0 )
+ wsi-layer? ( >=media-libs/vkroots-0_p20240430 )
+"
+BDEPEND="
+ dev-util/glslang
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-deprecated-stb.patch
+ "${FILESDIR}"/${PN}-subprojects.patch
+)
+
+FILECAPS=(
+ cap_sys_nice usr/bin/${PN}
+)
+
+src_prepare() {
+ # ReShade is bundled as a git submodule, but it references an unofficial
+ # fork, so we cannot unbundle it. Upstream have requested that we do not
+ # unbundle libliftoff, vkroots, or wlroots. Symlink to the extracted sources
+ # when not using the git submodules in 9999.
+ if [[ ${PV} != "9999" ]]; then
+ local dir name commit
+ for dir in "${EGIT_SUBMODULES[@]}"; do
+ rmdir "${dir}" || die
+ name=${dir##*/}
+ commit=${name^^}_COMMIT
+ mv "../${name}-${!commit}" "${dir}" || die
+ done
+ fi
+
+ # SPIRV-Headers is required by ReShade. It is bundled as a git submodule but
+ # not wrapped with Meson, so we can symlink to our system-wide headers.
+ # For 9999, this submodule is not included.
+ mkdir -p thirdparty/SPIRV-Headers/include || die
+ ln -snf "${ESYSROOT}"/usr/include/spirv thirdparty/SPIRV-Headers/include/ || die
+
+ default
+}
+
+src_configure() {
+ # Disabling DRM backend is currently broken.
+ # https://github.com/ValveSoftware/gamescope/issues/1347
+ local emesonargs=(
+ $(meson_feature pipewire)
+ -Ddrm_backend=enabled
+ $(meson_feature sdl sdl2_backend)
+ $(meson_feature avif avif_screenshots)
+ $(meson_feature libei input_emulation)
+ $(meson_use wsi-layer enable_gamescope_wsi_layer)
+ -Denable_openvr_support=false
+ $(meson_use test enable_tests)
+ -Dbenchmark=disabled
+
+ -Dwlroots:xcb-errors=disabled
+ -Dwlroots:examples=false
+ -Dwlroots:renderers=gles2,vulkan
+ -Dwlroots:xwayland=enabled
+ -Dwlroots:backends=libinput
+ -Dwlroots:session=enabled
+ )
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install --skip-subprojects
+}
diff --git a/gui-wm/gamescope/metadata.xml b/gui-wm/gamescope/metadata.xml
new file mode 100644
index 000000000000..0ea32ea1919a
--- /dev/null
+++ b/gui-wm/gamescope/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>chewi@gentoo.org</email>
+ <name>James Le Cuirot</name>
+ </maintainer>
+ <use>
+ <flag name="libei">Enable emulated input using <pkg>dev-libs/libei</pkg>
+ </flag>
+ <flag name="pipewire">Enable screen capture via PipeWire</flag>
+ <flag name="wsi-layer">Enable the WSI layer (required for HDR)</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/gui-wm/labwc/Manifest b/gui-wm/labwc/Manifest
new file mode 100644
index 000000000000..dccc73531a72
--- /dev/null
+++ b/gui-wm/labwc/Manifest
@@ -0,0 +1,2 @@
+DIST labwc-0.20.0.tar.gz 548211 BLAKE2B 09a7d5bc1b775d370cfc294a76a679aac441f3bf5518bd5e271c398ecf64ca506e2096a625f467e34252668310852113d07d84e6d1caaf76f800271ea6f8094a SHA512 47958a3b386d2db344ac069edc56c533ac795f73048db1246172bfe22d26f51082a4dd9bdd40b5d7eeb52bb034d588b1b870e81c70b4ca9529502a9dc62da403
+DIST labwc-0.9.7.tar.gz 548483 BLAKE2B b8b4bdd295aeb9a051961dedfbd5cbeff611a5700914e0e5c6bbafd2523b3db9fde2d98bef4300fa3c03d44e4d219aeacba3bbe0ac07d8e7090d2028df68536b SHA512 299b6b46961450d60355b45d8e5565d64800abc58e2ef95d6c8f27b9665ff45712108611d4272450761c962d3943de2b73c9de55a2d1189a061eb24985ccfbe6
diff --git a/gui-wm/labwc/labwc-0.20.0.ebuild b/gui-wm/labwc/labwc-0.20.0.ebuild
new file mode 100644
index 000000000000..9d88d2edec64
--- /dev/null
+++ b/gui-wm/labwc/labwc-0.20.0.ebuild
@@ -0,0 +1,70 @@
+# Copyright 2021-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson xdg
+
+DESCRIPTION="Openbox alternative for wayland"
+HOMEPAGE="https://github.com/labwc/labwc https://labwc.github.io/"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/labwc/labwc"
+else
+ SRC_URI="https://github.com/labwc/labwc/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="X icons nls svg test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-libs/wayland-1.19
+ dev-libs/glib:2
+ dev-libs/libinput:=
+ dev-libs/libxml2:=
+ >=gui-libs/wlroots-0.20.1:0.20[X?,libinput]
+ media-libs/libpng:=
+ x11-libs/cairo[X?]
+ x11-libs/libdrm:=
+ x11-libs/libxkbcommon[X?]
+ x11-libs/pango[X?]
+ x11-libs/pixman
+ X? (
+ x11-base/xwayland
+ x11-libs/libxcb:0=
+ x11-libs/xcb-util-wm
+ )
+ icons? ( gui-libs/libsfdo )
+ nls? ( sys-devel/gettext )
+ svg? ( gnome-base/librsvg:2 )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-text/scdoc
+ >=dev-libs/wayland-protocols-1.35
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+ test? ( dev-util/cmocka )
+"
+
+src_configure() {
+ local emesonargs=(
+ -Dman-pages=enabled
+ $(meson_feature X xwayland)
+ $(meson_feature nls)
+ $(meson_feature svg)
+ $(meson_feature icons icon)
+ $(meson_feature test)
+ )
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+
+ mv "${ED}"/usr/share/doc/${PN} "${ED}"/usr/share/doc/${PF} || die
+}
diff --git a/gui-wm/labwc/labwc-0.9.7.ebuild b/gui-wm/labwc/labwc-0.9.7.ebuild
new file mode 100644
index 000000000000..7acb6bb7488c
--- /dev/null
+++ b/gui-wm/labwc/labwc-0.9.7.ebuild
@@ -0,0 +1,70 @@
+# Copyright 2021-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson xdg
+
+DESCRIPTION="Openbox alternative for wayland"
+HOMEPAGE="https://github.com/labwc/labwc https://labwc.github.io/"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/labwc/labwc"
+else
+ SRC_URI="https://github.com/labwc/labwc/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="X icons nls svg test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-libs/wayland-1.19
+ dev-libs/glib:2
+ dev-libs/libinput:=
+ dev-libs/libxml2:=
+ gui-libs/wlroots:0.19[X?,libinput]
+ media-libs/libpng:=
+ x11-libs/cairo[X?]
+ x11-libs/libdrm:=
+ x11-libs/libxkbcommon[X?]
+ x11-libs/pango[X?]
+ x11-libs/pixman
+ X? (
+ x11-base/xwayland
+ x11-libs/libxcb:0=
+ x11-libs/xcb-util-wm
+ )
+ icons? ( gui-libs/libsfdo )
+ nls? ( sys-devel/gettext )
+ svg? ( gnome-base/librsvg:2 )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-text/scdoc
+ >=dev-libs/wayland-protocols-1.35
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+ test? ( dev-util/cmocka )
+"
+
+src_configure() {
+ local emesonargs=(
+ -Dman-pages=enabled
+ $(meson_feature X xwayland)
+ $(meson_feature nls)
+ $(meson_feature svg)
+ $(meson_feature icons icon)
+ $(meson_feature test)
+ )
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+
+ mv "${ED}"/usr/share/doc/${PN} "${ED}"/usr/share/doc/${PF} || die
+}
diff --git a/gui-wm/labwc/labwc-9999.ebuild b/gui-wm/labwc/labwc-9999.ebuild
new file mode 100644
index 000000000000..9d88d2edec64
--- /dev/null
+++ b/gui-wm/labwc/labwc-9999.ebuild
@@ -0,0 +1,70 @@
+# Copyright 2021-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson xdg
+
+DESCRIPTION="Openbox alternative for wayland"
+HOMEPAGE="https://github.com/labwc/labwc https://labwc.github.io/"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/labwc/labwc"
+else
+ SRC_URI="https://github.com/labwc/labwc/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="X icons nls svg test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-libs/wayland-1.19
+ dev-libs/glib:2
+ dev-libs/libinput:=
+ dev-libs/libxml2:=
+ >=gui-libs/wlroots-0.20.1:0.20[X?,libinput]
+ media-libs/libpng:=
+ x11-libs/cairo[X?]
+ x11-libs/libdrm:=
+ x11-libs/libxkbcommon[X?]
+ x11-libs/pango[X?]
+ x11-libs/pixman
+ X? (
+ x11-base/xwayland
+ x11-libs/libxcb:0=
+ x11-libs/xcb-util-wm
+ )
+ icons? ( gui-libs/libsfdo )
+ nls? ( sys-devel/gettext )
+ svg? ( gnome-base/librsvg:2 )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-text/scdoc
+ >=dev-libs/wayland-protocols-1.35
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+ test? ( dev-util/cmocka )
+"
+
+src_configure() {
+ local emesonargs=(
+ -Dman-pages=enabled
+ $(meson_feature X xwayland)
+ $(meson_feature nls)
+ $(meson_feature svg)
+ $(meson_feature icons icon)
+ $(meson_feature test)
+ )
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+
+ mv "${ED}"/usr/share/doc/${PN} "${ED}"/usr/share/doc/${PF} || die
+}
diff --git a/gui-wm/labwc/metadata.xml b/gui-wm/labwc/metadata.xml
new file mode 100644
index 000000000000..5e3004456ab0
--- /dev/null
+++ b/gui-wm/labwc/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>ceamac@gentoo.org</email>
+ <name>Viorel Munteanu</name>
+ </maintainer>
+ <use>
+ <flag name="icons">Add support for window icons. Icons will only be displayed with USE=svg enabled</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/gui-wm/sway/Manifest b/gui-wm/sway/Manifest
new file mode 100644
index 000000000000..d1d266fb83ca
--- /dev/null
+++ b/gui-wm/sway/Manifest
@@ -0,0 +1,10 @@
+DIST sway-1.10.1.gh.tar.gz 5588240 BLAKE2B 151b8651c01d8478e67ac143c7e20d7950636190ff033f4d2eaec105baf7dafd18cf5a81de00c910975787a6de21fbac10f05765612cb45f4d62b12f8fb16dcd SHA512 561ed17b6ad0761a70ecb6b1a3add12c71b23def32973191ceb84f6f58f0771d62ec0931f4526646967084eecda5b987f2ca135f158f2759e9f07dd2cb405da0
+DIST sway-1.10.1.gh.tar.gz.sig 566 BLAKE2B e8ee451678e1d6f944efb27f3822f9768547dde4788305987dc4234888586ccfe61eb470906a1abf55b88b5acbb6fbfa811c6906961e49924c986d6d4e9c14a2 SHA512 faf128d0447c74c4ea445cb21f52c5d74a665bb3931d9c3a5ef5ca65a71b63461e5fc81a92dcd333d561a21985ef40349acd18fe8008022425d9fbea6a473b1e
+DIST sway-1.10.gh.tar.gz 5587460 BLAKE2B 91cbbf87f1cf4764fd58bbf85efea1c5d502a577082066cceaec3ceb73c2e95fba27462a094a0fe024f97390acab9ecc938386024a6e31388e1464fb7353a77a SHA512 f75a80506d2dcae722ea64c47fa423b9713bcfaa6541ffc353abd413238abb9ab7c88490d54e30ef09dc003215aa6a0005e5b425c9c943f982d5ff3c7cfad440
+DIST sway-1.10.gh.tar.gz.sig 566 BLAKE2B 24293ffe98a93775a23a580f4acff22efe7e0f8ecf3b6732d4f91043fa2769ae515bdb673f64ea33e9e134baf9cb9bb549fdc126aff5a10d21140479957fb7e1 SHA512 015e09b3d2c383e03d128d5192f58c540cb9347a2adb3a70b77e971de6fca136d1e6fb5477968130029c093996049981c5cdf3d3077ec5da46b0f03c7b8ca389
+DIST sway-1.11.gh.tar.gz 5630956 BLAKE2B 98b1f1788df3cd67577f5b3b0db015c27f9a2770ad110c8590bf3f4a35500ec69cf6286b932e63598723e5d190cc9f4ef5711e03aa35bd381fb5d502d09c0c04 SHA512 995810f678b19067430a4c6aaa969607bd8dbae744d5aea9a3dbe24634f494931a7d902d9ea534e4ffa326983c8dca841b2d1b08e980ed95a4c66a0b09a02e72
+DIST sway-1.11.gh.tar.gz.sig 566 BLAKE2B c8c5bfdd9a25e45a165b9124d75f35e51b6e3930f6d0d9c935abef6d0c6234672637d876e75d7138a3dc420770c77ca5cb0fc8d7a04f55839d32cea66591af5f SHA512 e8e65da3526a7bc2bc86cb9ac8efc12219931847fe171c6ad9d65b42295a3b6a7eff6e2be969e7982c2b530220e8c72560a2020e32ecf0a4e4a7e9f062f1dd5a
+DIST sway-1.12.gh.tar.gz 5637846 BLAKE2B d691ef6e44eaa63d0ae5856a60f883b4e7f4724ecb5b709aeb0657e500dc7fefe1bcb6f9c3b13a0c54a272e406b78da25540f0d7c214734cf704b4c76ef969ff SHA512 35e0843c6bc24ef90c50b45382b8765bdd6318df4716f37c76e10c3ad78d06a826b768519b6ccc262b89bbdbb1732b102d006844b16ec48ba8a427ce2279bb5e
+DIST sway-1.12.gh.tar.gz.sig 566 BLAKE2B c5c2918675388549b58578e89bdcad32cc56ed9a145debceaf755774499003a98f8d99379ff360bacb47d224262c5cdcdeaf098cce81c49ac5aa52aec3a6f87f SHA512 21e8fb9e9996816e0c040cc3823ab8d03bd6262d9e2fdab503e3b2d267ddee2d8834986700119850b5e8cfac8c4be53c06e26f8f501b8ac34bd86d292a5d5cdf
+DIST sway-1.9.gh.tar.gz 5587501 BLAKE2B c6ca46c4c046ee690240a58231acc47bdc562adb2f23522a41cc14fba0cfa14fd4bd03d990640b1a832f862432a6c8ff9518fccf4f1e63ce833c60cd1bf82107 SHA512 1d2a47bb8b838573a32f3719a7329fd744119c2c7efc5e5a4168b2bacfb09a3901a569177e5e10c129141fafe00e823ab78c04b76b502d23caa7621bbccd5919
+DIST sway-1.9.gh.tar.gz.sig 566 BLAKE2B 671ca15d9113bbe586a2546967e9afbcd5927103b86395fe751bfbf7778a2c05805f3fe52a951c34dc18332d653cb8a758c3bada42e9b76fe3f360dd712201cc SHA512 606f3ee05fb2e4e127438fcbed09119b8884a620bfc22d531ec4a5e2fc71a2fb85840a7ab80f2c5cc5ad0ed1b17b7762f617385a596c9cd5ce5bd07987b49776
diff --git a/gui-wm/sway/files/sway-portals.conf b/gui-wm/sway/files/sway-portals.conf
new file mode 100644
index 000000000000..aa046f63c4b1
--- /dev/null
+++ b/gui-wm/sway/files/sway-portals.conf
@@ -0,0 +1,6 @@
+[preferred]
+# Use xdg-desktop-portal-gtk for every portal interface...
+default=gtk
+# ... except for the ScreenCast and Screenshot
+org.freedesktop.impl.portal.ScreenCast=wlr
+org.freedesktop.impl.portal.Screenshot=wlr
diff --git a/gui-wm/sway/metadata.xml b/gui-wm/sway/metadata.xml
new file mode 100644
index 000000000000..3b7027af6fc2
--- /dev/null
+++ b/gui-wm/sway/metadata.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <longdescription lang="en">
+ "SirCmpwn's Wayland window manager" is an i3-compatible window manager
+ for Wayland.
+
+ sway was created to fill the need of an i3-like window manager for
+ Wayland. The upstream i3 developers have no intention of porting i3 to
+ Wayland, and projects proposed by others ended up as vaporware. Many
+ thanks to the i3 folks for providing such a great piece of software, so
+ good that your users would rather write an entirely new window manager
+ from scratch that behaved *exactly* like i3 rather than switch to
+ something else.
+ </longdescription>
+ <use>
+ <flag name="swaybar">Install 'swaybar': sway's status bar component</flag>
+ <flag name="swaynag">Install 'swaynag': shows a message with buttons</flag>
+ <flag name="tray">Enable support for StatusNotifierItem tray specification</flag>
+ <flag name="wallpapers">Install sway's default wallpaper image</flag>
+ <flag name="X">Enable support for X11 applications (XWayland)</flag>
+ </use>
+ <upstream>
+ <maintainer status="active">
+ <email>sir@cmpwn.com</email>
+ <name>Drew DeVault</name>
+ </maintainer>
+ <bugs-to>https://github.com/swaywm/sway/issues</bugs-to>
+ <doc>https://github.com/swaywm/sway/wiki</doc>
+ <changelog>https://github.com/swaywm/sway/releases</changelog>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/gui-wm/sway/sway-1.10.1.ebuild b/gui-wm/sway/sway-1.10.1.ebuild
new file mode 100644
index 000000000000..9672376021fe
--- /dev/null
+++ b/gui-wm/sway/sway-1.10.1.ebuild
@@ -0,0 +1,116 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit fcaps meson optfeature
+
+DESCRIPTION="i3-compatible Wayland window manager"
+HOMEPAGE="https://swaywm.org"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/swaywm/${PN}.git"
+else
+ MY_PV=${PV/_rc/-rc}
+ inherit verify-sig
+ SRC_URI="https://github.com/swaywm/${PN}/releases/download/${PV}/${P}.tar.gz -> ${P}.gh.tar.gz
+ https://github.com/swaywm/${PN}/releases/download/${PV}/${P}.tar.gz.sig -> ${P}.gh.tar.gz.sig"
+ KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv x86"
+ S="${WORKDIR}/${PN}-${MY_PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="+man +swaybar +swaynag tray wallpapers X"
+REQUIRED_USE="tray? ( swaybar )"
+
+DEPEND="
+ >=dev-libs/json-c-0.13:0=
+ >=dev-libs/libinput-1.21.0:0=
+ virtual/libudev
+ sys-auth/seatd:=
+ dev-libs/libpcre2
+ >=dev-libs/wayland-1.20.0
+ x11-libs/cairo
+ >=x11-libs/libxkbcommon-1.5.0:0=
+ x11-libs/pango
+ x11-libs/pixman
+ media-libs/libglvnd
+ swaybar? ( x11-libs/gdk-pixbuf:2 )
+ tray? ( || (
+ sys-apps/systemd
+ sys-auth/elogind
+ sys-libs/basu
+ ) )
+ wallpapers? ( gui-apps/swaybg[gdk-pixbuf(+)] )
+ X? (
+ x11-libs/libxcb:0=
+ x11-libs/xcb-util-wm
+ )
+"
+# x11-libs/xcb-util-wm needed for xcb-iccm
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+="~gui-libs/wlroots-9999:=[X=]"
+else
+ DEPEND+="
+ gui-libs/wlroots:0.18[X=]
+ "
+fi
+RDEPEND="
+ ${DEPEND}
+ x11-misc/xkeyboard-config
+"
+BDEPEND="
+ >=dev-libs/wayland-protocols-1.24
+ >=dev-build/meson-0.60.0
+ virtual/pkgconfig
+"
+if [[ ${PV} == 9999 ]]; then
+ BDEPEND+="man? ( ~app-text/scdoc-9999 )"
+else
+ BDEPEND+="man? ( >=app-text/scdoc-1.9.3 )
+ verify-sig? ( sec-keys/openpgp-keys-emersion )"
+ VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/emersion.asc"
+fi
+
+FILECAPS=(
+ cap_sys_nice usr/bin/${PN} # bug 919298
+)
+
+src_configure() {
+ local emesonargs=(
+ $(meson_feature man man-pages)
+ $(meson_feature tray)
+ $(meson_feature swaybar gdk-pixbuf)
+ $(meson_use swaynag)
+ $(meson_use swaybar)
+ $(meson_use wallpapers default-wallpaper)
+ -Dfish-completions=true
+ -Dzsh-completions=true
+ -Dbash-completions=true
+ )
+
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+ insinto /usr/share/xdg-desktop-portal
+ doins "${FILESDIR}/sway-portals.conf"
+}
+
+pkg_postinst() {
+ fcaps_pkg_postinst
+
+ optfeature_header "There are several packages that may be useful with sway:"
+ optfeature "wallpaper utility" gui-apps/swaybg
+ optfeature "idle management utility" gui-apps/swayidle
+ optfeature "simple screen locker" gui-apps/swaylock
+ optfeature "lightweight notification daemon" gui-apps/mako
+ echo
+ einfo "For a list of additional addons and tools usable with sway please"
+ einfo "visit the official wiki at:"
+ einfo "https://github.com/swaywm/sway/wiki/Useful-add-ons-for-sway"
+ einfo "Please note that some of them might not (yet) available on gentoo"
+}
diff --git a/gui-wm/sway/sway-1.10.ebuild b/gui-wm/sway/sway-1.10.ebuild
new file mode 100644
index 000000000000..cd4f73871523
--- /dev/null
+++ b/gui-wm/sway/sway-1.10.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit fcaps meson optfeature
+
+DESCRIPTION="i3-compatible Wayland window manager"
+HOMEPAGE="https://swaywm.org"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/swaywm/${PN}.git"
+else
+ MY_PV=${PV/_rc/-rc}
+ inherit verify-sig
+ SRC_URI="https://github.com/swaywm/${PN}/releases/download/${PV}/${P}.tar.gz -> ${P}.gh.tar.gz
+ https://github.com/swaywm/${PN}/releases/download/${PV}/${P}.tar.gz.sig -> ${P}.gh.tar.gz.sig"
+ KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+ S="${WORKDIR}/${PN}-${MY_PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="+man +swaybar +swaynag tray wallpapers X"
+REQUIRED_USE="tray? ( swaybar )"
+
+DEPEND="
+ >=dev-libs/json-c-0.13:0=
+ >=dev-libs/libinput-1.26.0:0=
+ virtual/libudev
+ sys-auth/seatd:=
+ dev-libs/libpcre2
+ >=dev-libs/wayland-1.21.0
+ x11-libs/cairo
+ >=x11-libs/libxkbcommon-1.5.0:0=
+ x11-libs/pango
+ x11-libs/pixman
+ media-libs/libglvnd
+ swaybar? ( x11-libs/gdk-pixbuf:2 )
+ tray? ( || (
+ sys-apps/systemd
+ sys-auth/elogind
+ sys-libs/basu
+ ) )
+ wallpapers? ( gui-apps/swaybg[gdk-pixbuf(+)] )
+ X? (
+ x11-libs/libxcb:0=
+ x11-libs/xcb-util-wm
+ )
+"
+# x11-libs/xcb-util-wm needed for xcb-iccm
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+="~gui-libs/wlroots-9999:=[X?]"
+else
+ DEPEND+="
+ >=gui-libs/wlroots-0.18:=[X?]
+ <gui-libs/wlroots-0.19:=[X?]
+ "
+fi
+RDEPEND="
+ x11-misc/xkeyboard-config
+ ${DEPEND}
+"
+BDEPEND="
+ >=dev-libs/wayland-protocols-1.24
+ >=dev-build/meson-0.60.0
+ virtual/pkgconfig
+"
+if [[ ${PV} == 9999 ]]; then
+ BDEPEND+="man? ( ~app-text/scdoc-9999 )"
+else
+ BDEPEND+="man? ( >=app-text/scdoc-1.9.3 )
+ verify-sig? ( sec-keys/openpgp-keys-emersion )"
+ VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/emersion.asc"
+fi
+
+FILECAPS=(
+ cap_sys_nice usr/bin/${PN} # bug 919298
+)
+
+src_configure() {
+ local emesonargs=(
+ $(meson_feature man man-pages)
+ $(meson_feature tray)
+ $(meson_feature swaybar gdk-pixbuf)
+ $(meson_use swaynag)
+ $(meson_use swaybar)
+ $(meson_use wallpapers default-wallpaper)
+ -Dfish-completions=true
+ -Dzsh-completions=true
+ -Dbash-completions=true
+ )
+
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+ insinto /usr/share/xdg-desktop-portal
+ doins "${FILESDIR}/sway-portals.conf"
+}
+
+pkg_postinst() {
+ fcaps_pkg_postinst
+
+ optfeature_header "There are several packages that may be useful with sway:"
+ optfeature "wallpaper utility" gui-apps/swaybg
+ optfeature "idle management utility" gui-apps/swayidle
+ optfeature "simple screen locker" gui-apps/swaylock
+ optfeature "lightweight notification daemon" gui-apps/mako
+ echo
+ einfo "For a list of additional addons and tools usable with sway please"
+ einfo "visit the official wiki at:"
+ einfo "https://github.com/swaywm/sway/wiki/Useful-add-ons-for-sway"
+ einfo "Please note that some of them might not (yet) available on gentoo"
+}
diff --git a/gui-wm/sway/sway-1.11.ebuild b/gui-wm/sway/sway-1.11.ebuild
new file mode 100644
index 000000000000..d42598fb0a5c
--- /dev/null
+++ b/gui-wm/sway/sway-1.11.ebuild
@@ -0,0 +1,118 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit fcaps meson optfeature
+
+DESCRIPTION="i3-compatible Wayland window manager"
+HOMEPAGE="https://swaywm.org"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/swaywm/${PN}.git"
+else
+ MY_PV=${PV/_rc/-rc}
+ inherit verify-sig
+ SRC_URI="https://github.com/swaywm/${PN}/releases/download/${PV}/${P}.tar.gz -> ${P}.gh.tar.gz
+ https://github.com/swaywm/${PN}/releases/download/${PV}/${P}.tar.gz.sig -> ${P}.gh.tar.gz.sig"
+ KEYWORDS="amd64 ~arm arm64 ~loong ~ppc64 ~riscv x86"
+ S="${WORKDIR}/${PN}-${MY_PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="+man +swaybar +swaynag tray wallpapers X"
+REQUIRED_USE="tray? ( swaybar )"
+
+DEPEND="
+ >=dev-libs/json-c-0.13:0=
+ >=dev-libs/libinput-1.26.0:0=
+ virtual/libudev
+ sys-auth/seatd:=
+ dev-libs/libevdev
+ dev-libs/libpcre2
+ >=dev-libs/wayland-1.21.0
+ x11-libs/cairo
+ x11-libs/libdrm
+ >=x11-libs/libxkbcommon-1.5.0:0=
+ x11-libs/pango
+ x11-libs/pixman
+ media-libs/libglvnd
+ swaybar? ( x11-libs/gdk-pixbuf:2 )
+ tray? ( || (
+ sys-apps/systemd
+ sys-auth/elogind
+ sys-libs/basu
+ ) )
+ wallpapers? ( gui-apps/swaybg[gdk-pixbuf(+)] )
+ X? (
+ x11-libs/libxcb:0=
+ x11-libs/xcb-util-wm
+ )
+"
+# x11-libs/xcb-util-wm needed for xcb-iccm
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+="~gui-libs/wlroots-9999:=[X=]"
+else
+ DEPEND+="
+ gui-libs/wlroots:0.19[X=]
+ "
+fi
+RDEPEND="
+ ${DEPEND}
+ x11-misc/xkeyboard-config
+"
+BDEPEND="
+ >=dev-libs/wayland-protocols-1.24
+ >=dev-build/meson-1.3
+ virtual/pkgconfig
+"
+if [[ ${PV} == 9999 ]]; then
+ BDEPEND+="man? ( ~app-text/scdoc-9999 )"
+else
+ BDEPEND+="man? ( >=app-text/scdoc-1.11.3 )
+ verify-sig? ( sec-keys/openpgp-keys-emersion )"
+ VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/emersion.asc"
+fi
+
+FILECAPS=(
+ cap_sys_nice usr/bin/${PN} # bug 919298
+)
+
+src_configure() {
+ local emesonargs=(
+ $(meson_feature man man-pages)
+ $(meson_feature tray)
+ $(meson_feature swaybar gdk-pixbuf)
+ $(meson_use swaynag)
+ $(meson_use swaybar)
+ $(meson_use wallpapers default-wallpaper)
+ -Dfish-completions=true
+ -Dzsh-completions=true
+ -Dbash-completions=true
+ )
+
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+ insinto /usr/share/xdg-desktop-portal
+ doins "${FILESDIR}/sway-portals.conf"
+}
+
+pkg_postinst() {
+ fcaps_pkg_postinst
+
+ optfeature_header "There are several packages that may be useful with sway:"
+ optfeature "wallpaper utility" gui-apps/swaybg
+ optfeature "idle management utility" gui-apps/swayidle
+ optfeature "simple screen locker" gui-apps/swaylock
+ optfeature "lightweight notification daemon" gui-apps/mako
+ echo
+ einfo "For a list of additional addons and tools usable with sway please"
+ einfo "visit the official wiki at:"
+ einfo "https://github.com/swaywm/sway/wiki/Useful-add-ons-for-sway"
+ einfo "Please note that some of them might not (yet) available on gentoo"
+}
diff --git a/gui-wm/sway/sway-1.12.ebuild b/gui-wm/sway/sway-1.12.ebuild
new file mode 100644
index 000000000000..1a57e23a9015
--- /dev/null
+++ b/gui-wm/sway/sway-1.12.ebuild
@@ -0,0 +1,118 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit fcaps meson optfeature
+
+DESCRIPTION="i3-compatible Wayland window manager"
+HOMEPAGE="https://swaywm.org"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/swaywm/${PN}.git"
+else
+ MY_PV=${PV/_rc/-rc}
+ inherit verify-sig
+ SRC_URI="https://github.com/swaywm/${PN}/releases/download/${PV}/${P}.tar.gz -> ${P}.gh.tar.gz
+ https://github.com/swaywm/${PN}/releases/download/${PV}/${P}.tar.gz.sig -> ${P}.gh.tar.gz.sig"
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+ S="${WORKDIR}/${PN}-${MY_PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="+man +swaybar +swaynag tray wallpapers X"
+REQUIRED_USE="tray? ( swaybar )"
+
+DEPEND="
+ >=dev-libs/json-c-0.13:0=
+ >=dev-libs/libinput-1.26.0:0=
+ virtual/libudev
+ sys-auth/seatd:=
+ dev-libs/libevdev
+ dev-libs/libpcre2
+ >=dev-libs/wayland-1.21.0
+ x11-libs/cairo
+ x11-libs/libdrm
+ >=x11-libs/libxkbcommon-1.5.0:0=
+ x11-libs/pango
+ x11-libs/pixman
+ media-libs/libglvnd
+ swaybar? ( x11-libs/gdk-pixbuf:2 )
+ tray? ( || (
+ sys-apps/systemd
+ sys-auth/elogind
+ sys-libs/basu
+ ) )
+ wallpapers? ( gui-apps/swaybg[gdk-pixbuf(+)] )
+ X? (
+ x11-libs/libxcb:0=
+ x11-libs/xcb-util-wm
+ )
+"
+# x11-libs/xcb-util-wm needed for xcb-iccm
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+="~gui-libs/wlroots-9999:=[X=]"
+else
+ DEPEND+="
+ gui-libs/wlroots:0.20[X=]
+ "
+fi
+RDEPEND="
+ ${DEPEND}
+ x11-misc/xkeyboard-config
+"
+BDEPEND="
+ >=dev-libs/wayland-protocols-1.41
+ >=dev-build/meson-1.3
+ virtual/pkgconfig
+"
+if [[ ${PV} == 9999 ]]; then
+ BDEPEND+="man? ( ~app-text/scdoc-9999 )"
+else
+ BDEPEND+="man? ( >=app-text/scdoc-1.11.3 )
+ verify-sig? ( >=sec-keys/openpgp-keys-emersion-20260503 )"
+ VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/emersion.asc"
+fi
+
+FILECAPS=(
+ cap_sys_nice usr/bin/${PN} # bug 919298
+)
+
+src_configure() {
+ local emesonargs=(
+ $(meson_feature man man-pages)
+ $(meson_feature tray)
+ $(meson_feature swaybar gdk-pixbuf)
+ $(meson_use swaynag)
+ $(meson_use swaybar)
+ $(meson_use wallpapers default-wallpaper)
+ -Dfish-completions=true
+ -Dzsh-completions=true
+ -Dbash-completions=true
+ )
+
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+ insinto /usr/share/xdg-desktop-portal
+ doins "${FILESDIR}/sway-portals.conf"
+}
+
+pkg_postinst() {
+ fcaps_pkg_postinst
+
+ optfeature_header "There are several packages that may be useful with sway:"
+ optfeature "wallpaper utility" gui-apps/swaybg
+ optfeature "idle management utility" gui-apps/swayidle
+ optfeature "simple screen locker" gui-apps/swaylock
+ optfeature "lightweight notification daemon" gui-apps/mako
+ echo
+ einfo "For a list of additional addons and tools usable with sway please"
+ einfo "visit the official wiki at:"
+ einfo "https://github.com/swaywm/sway/wiki/Useful-add-ons-for-sway"
+ einfo "Please note that some of them might not (yet) available on gentoo"
+}
diff --git a/gui-wm/sway/sway-1.9-r1.ebuild b/gui-wm/sway/sway-1.9-r1.ebuild
new file mode 100644
index 000000000000..9710cd803b26
--- /dev/null
+++ b/gui-wm/sway/sway-1.9-r1.ebuild
@@ -0,0 +1,118 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit fcaps meson optfeature
+
+DESCRIPTION="i3-compatible Wayland window manager"
+HOMEPAGE="https://swaywm.org"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/swaywm/${PN}.git"
+else
+ MY_PV=${PV/_rc/-rc}
+ inherit verify-sig
+ SRC_URI="https://github.com/swaywm/${PN}/releases/download/${PV}/${P}.tar.gz -> ${P}.gh.tar.gz
+ https://github.com/swaywm/${PN}/releases/download/${PV}/${P}.tar.gz.sig -> ${P}.gh.tar.gz.sig"
+ KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv x86"
+ S="${WORKDIR}/${PN}-${MY_PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="+man +swaybar +swaynag tray wallpapers X"
+REQUIRED_USE="tray? ( swaybar )"
+
+DEPEND="
+ >=dev-libs/json-c-0.13:0=
+ >=dev-libs/libinput-1.21.0:0=
+ virtual/libudev
+ sys-auth/seatd:=
+ dev-libs/libpcre2
+ >=dev-libs/wayland-1.20.0
+ x11-libs/cairo
+ >=x11-libs/libxkbcommon-1.5.0:0=
+ x11-libs/pango
+ x11-libs/pixman
+ media-libs/libglvnd
+ swaybar? ( x11-libs/gdk-pixbuf:2 )
+ tray? ( || (
+ sys-apps/systemd
+ sys-auth/elogind
+ sys-libs/basu
+ ) )
+ wallpapers? ( gui-apps/swaybg[gdk-pixbuf(+)] )
+ X? (
+ x11-libs/libxcb:0=
+ x11-libs/xcb-util-wm
+ )
+"
+# x11-libs/xcb-util-wm needed for xcb-iccm
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+="~gui-libs/wlroots-9999:=[X?]"
+else
+ DEPEND+="
+ >=gui-libs/wlroots-0.17:=[X?]
+ <gui-libs/wlroots-0.18:=[X?]
+ "
+fi
+RDEPEND="
+ x11-misc/xkeyboard-config
+ ${DEPEND}
+"
+BDEPEND="
+ >=dev-libs/wayland-protocols-1.24
+ >=dev-build/meson-0.60.0
+ virtual/pkgconfig
+"
+if [[ ${PV} == 9999 ]]; then
+ BDEPEND+="man? ( ~app-text/scdoc-9999 )"
+else
+ BDEPEND+="man? ( >=app-text/scdoc-1.9.3 )
+ verify-sig? ( sec-keys/openpgp-keys-emersion )"
+ VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/emersion.asc"
+fi
+
+FILECAPS=(
+ cap_sys_nice usr/bin/${PN} # bug 919298
+)
+
+src_configure() {
+ local emesonargs=(
+ $(meson_feature man man-pages)
+ $(meson_feature tray)
+ $(meson_feature X xwayland)
+ $(meson_feature swaybar gdk-pixbuf)
+ $(meson_use swaynag)
+ $(meson_use swaybar)
+ $(meson_use wallpapers default-wallpaper)
+ -Dfish-completions=true
+ -Dzsh-completions=true
+ -Dbash-completions=true
+ )
+
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+ insinto /usr/share/xdg-desktop-portal
+ doins "${FILESDIR}/sway-portals.conf"
+}
+
+pkg_postinst() {
+ fcaps_pkg_postinst
+
+ optfeature_header "There are several packages that may be useful with sway:"
+ optfeature "wallpaper utility" gui-apps/swaybg
+ optfeature "idle management utility" gui-apps/swayidle
+ optfeature "simple screen locker" gui-apps/swaylock
+ optfeature "lightweight notification daemon" gui-apps/mako
+ echo
+ einfo "For a list of additional addons and tools usable with sway please"
+ einfo "visit the official wiki at:"
+ einfo "https://github.com/swaywm/sway/wiki/Useful-add-ons-for-sway"
+ einfo "Please note that some of them might not (yet) available on gentoo"
+}
diff --git a/gui-wm/sway/sway-9999.ebuild b/gui-wm/sway/sway-9999.ebuild
new file mode 100644
index 000000000000..df4af23bd7a0
--- /dev/null
+++ b/gui-wm/sway/sway-9999.ebuild
@@ -0,0 +1,118 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit fcaps meson optfeature
+
+DESCRIPTION="i3-compatible Wayland window manager"
+HOMEPAGE="https://swaywm.org"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/swaywm/${PN}.git"
+else
+ MY_PV=${PV/_rc/-rc}
+ inherit verify-sig
+ SRC_URI="https://github.com/swaywm/${PN}/releases/download/${PV}/${P}.tar.gz -> ${P}.gh.tar.gz
+ https://github.com/swaywm/${PN}/releases/download/${PV}/${P}.tar.gz.sig -> ${P}.gh.tar.gz.sig"
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+ S="${WORKDIR}/${PN}-${MY_PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="+man +swaybar +swaynag tray wallpapers X"
+REQUIRED_USE="tray? ( swaybar )"
+
+DEPEND="
+ >=dev-libs/json-c-0.13:0=
+ >=dev-libs/libinput-1.26.0:0=
+ virtual/libudev
+ sys-auth/seatd:=
+ dev-libs/libevdev
+ dev-libs/libpcre2
+ >=dev-libs/wayland-1.21.0
+ x11-libs/cairo
+ x11-libs/libdrm
+ >=x11-libs/libxkbcommon-1.5.0:0=
+ x11-libs/pango
+ x11-libs/pixman
+ media-libs/libglvnd
+ swaybar? ( x11-libs/gdk-pixbuf:2 )
+ tray? ( || (
+ sys-apps/systemd
+ sys-auth/elogind
+ sys-libs/basu
+ ) )
+ wallpapers? ( gui-apps/swaybg[gdk-pixbuf(+)] )
+ X? (
+ x11-libs/libxcb:0=
+ x11-libs/xcb-util-wm
+ )
+"
+# x11-libs/xcb-util-wm needed for xcb-iccm
+if [[ ${PV} == 9999 ]]; then
+ DEPEND+="~gui-libs/wlroots-9999:=[X=]"
+else
+ DEPEND+="
+ gui-libs/wlroots:0.20[X=]
+ "
+fi
+RDEPEND="
+ ${DEPEND}
+ x11-misc/xkeyboard-config
+"
+BDEPEND="
+ >=dev-libs/wayland-protocols-1.41
+ >=dev-build/meson-1.3
+ virtual/pkgconfig
+"
+if [[ ${PV} == 9999 ]]; then
+ BDEPEND+="man? ( ~app-text/scdoc-9999 )"
+else
+ BDEPEND+="man? ( >=app-text/scdoc-1.11.3 )
+ verify-sig? ( sec-keys/openpgp-keys-emersion )"
+ VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/emersion.asc"
+fi
+
+FILECAPS=(
+ cap_sys_nice usr/bin/${PN} # bug 919298
+)
+
+src_configure() {
+ local emesonargs=(
+ $(meson_feature man man-pages)
+ $(meson_feature tray)
+ $(meson_feature swaybar gdk-pixbuf)
+ $(meson_use swaynag)
+ $(meson_use swaybar)
+ $(meson_use wallpapers default-wallpaper)
+ -Dfish-completions=true
+ -Dzsh-completions=true
+ -Dbash-completions=true
+ )
+
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+ insinto /usr/share/xdg-desktop-portal
+ doins "${FILESDIR}/sway-portals.conf"
+}
+
+pkg_postinst() {
+ fcaps_pkg_postinst
+
+ optfeature_header "There are several packages that may be useful with sway:"
+ optfeature "wallpaper utility" gui-apps/swaybg
+ optfeature "idle management utility" gui-apps/swayidle
+ optfeature "simple screen locker" gui-apps/swaylock
+ optfeature "lightweight notification daemon" gui-apps/mako
+ echo
+ einfo "For a list of additional addons and tools usable with sway please"
+ einfo "visit the official wiki at:"
+ einfo "https://github.com/swaywm/sway/wiki/Useful-add-ons-for-sway"
+ einfo "Please note that some of them might not (yet) available on gentoo"
+}
diff --git a/gui-wm/tinywl/Manifest b/gui-wm/tinywl/Manifest
new file mode 100644
index 000000000000..e630f1babcf0
--- /dev/null
+++ b/gui-wm/tinywl/Manifest
@@ -0,0 +1,10 @@
+DIST wlroots-0.17.4.tar.gz 609179 BLAKE2B dc5a7749533ab54631d4a26be554b86e5b08b2472cf8f22ccebddb319d571cbd98a5c56e64e7bc762a5918d4272eb6b4261050288f3053c18c824c6a9c32b96b SHA512 35803df9fe68cadb0b9b5e522863535407ba2354ed1ca8f824a9c40b64698a97c579fec0afeb444b05d429adc1e3dfc45b20c3a1b7a2004e4f5a10d2305c9116
+DIST wlroots-0.17.4.tar.gz.sig 566 BLAKE2B d2d5e7bea8fc0cdf07502414fd129fbbe1947629f5f25eff9023d6fbca82741139547ff8f5c582d11474982de0644c7837780f19628e6826bdecdff552914da8 SHA512 9639a10f9dffbed3ffd2cb579aafe8092c5c3ad0d96a3f550c103d5b0339ba10a8824e5209ef616587ced3a994b4a768d99f0e742af103e6967c944b010d053c
+DIST wlroots-0.18.0.tar.gz 628190 BLAKE2B b1d725e0397365b69afce24baf5376057a40d225f7cb06ccd5abde3b3da8d5401a6eb5d57ab65154a6faf7961473039833e558e3b25da1210891d34667da5bf9 SHA512 2cf848aa67f41089b60cc7d01c3a344ebaf7f5bbced459675fef885cd4b3e6b99d9a49d6b127518314d0ae38e52e9aff7991611592b2add4cba96f15aa0bf1c6
+DIST wlroots-0.18.0.tar.gz.sig 566 BLAKE2B eae49e34e540006569383296da9b75d048b176cfc91b945b0dc51da47837a312133fb8ea973cd8e33ec6c74b27f539acbbc9a3ca1df70d8273b4d5e5db48ce95 SHA512 865665ae349ab3709645a81a293c4c2ac931bcdb2e9f3cc3811ec098969758c0ff7b4946bd5da1cb983d78145022769963f70a170a22fe0eb3a1546987f098e0
+DIST wlroots-0.18.1.tar.gz 628648 BLAKE2B 051909ef4cac4c523bb43b42396abe8c18e3835a7a29bde30787829040271720f06579dadf3f03d9569bcc1e25492c6bd383f314aaa10b63c597f08735d30537 SHA512 c4d83ae75aec4f7f4e8aefbff27594d0962c56c4a3a3ef2d7ccd432f92eb56df7edb995cc0fa1f62d9290e988f20e7525d007717f36ce4824dfc41061a697fbb
+DIST wlroots-0.18.1.tar.gz.sig 566 BLAKE2B 843d20bec0cdcdb88eea7bd09d0720d54cdc2c6ab1bc555514248844f9651e6c3cc9d1aebad46fef4aa6a822b5fe06468a32a135f6d3b03f7ea0351fdd78696a SHA512 39aa8ce9b2b5a0284f1d71a34600435219b0a2d59d9a4a5f08391c46c6013f3acb0bddc98099907debcab2dc26f7c306f69526359d59e4fe5285a2cbbc651bad
+DIST wlroots-0.19.2.tar.gz 670983 BLAKE2B b1feba85ea31a1ded7ab13429aeac7d7f8aa44ee831b0031b9befa9354e9c3eadc82d7ecb7f2362c2a1d6bcaf92c14844491e5cc3256bbb06835b2861370c7dd SHA512 8228bdd463f3b79c02cc36311f93eb3a2fe2c8406222316a9996abebfbefa39cc4a9587ea800d677961d59b27c82ae906e538dceaf565403bbb3f2b1ae19eff1
+DIST wlroots-0.19.2.tar.gz.sig 566 BLAKE2B abe564e95a94f2b331513e3711ac97b9fb335de377b9c84c512248f6227ce5a9826587341213a63f8aebc21c7ce4bcc7cd2164d16c4102c0691c4bc8dd043398 SHA512 c9f2bc6413c19e1fd52f151779a80513a72f0b9d1df706ad3d77df74f0736c22e12122fe08c3f24c908649ca1f3adad5aee8f8cc65fa0b24155353ca66f6e240
+DIST wlroots-0.20.0.tar.gz 700447 BLAKE2B 3844a9dfd5168fd4484115a826d240bc685fd8d39b48fe96a686cb6463b5cf1a124ae7bbe1bb84db2513b6ab9038fb519145bb3f5f1baf9ca3757f9167070acf SHA512 c951c9f6f9d720f994ee49a937ae8ed63f733a4fa1ce71f7e6ce1513f2cd91616ce8bd8cbb844aa1e46e62f3b46b028f3004bab94eca5ef8899cbaa3134ac314
+DIST wlroots-0.20.0.tar.gz.sig 566 BLAKE2B ec1361cf826a6e7c3c584d99d6049331bc12d49745bf0dfe89ff883dbea238ba043ef0268535ea4e06ce7b9aa65ed24e5f99dc442ac249066ac645dd7bc97394 SHA512 9241568120700b7dadd92ee212ee7c78d1d1fcfe3873250d09c97b9207a7cb8687b393ce8ce9f258698c17caf924ff2c91571e235580fcd7b8618d68e87e690b
diff --git a/gui-wm/tinywl/files/tinywl-0.17.4-improve-makefile.patch b/gui-wm/tinywl/files/tinywl-0.17.4-improve-makefile.patch
new file mode 100644
index 000000000000..2537955f7b12
--- /dev/null
+++ b/gui-wm/tinywl/files/tinywl-0.17.4-improve-makefile.patch
@@ -0,0 +1,84 @@
+https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4710
+From: =?UTF-8?q?Leonardo=20Hern=C3=A1ndez=20Hern=C3=A1ndez?=
+ <leohdz172@proton.me>
+Date: Wed, 12 Jun 2024 10:01:52 -0600
+Subject: [PATCH 1/2] tinywl: split compilation into two steps
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+While we are at it also respect LDFLAGS and optimize pkg-config usage
+
+Signed-off-by: Leonardo Hernández Hernández <leohdz172@proton.me>
+--- a/tinywl/Makefile
++++ b/tinywl/Makefile
+@@ -1,9 +1,9 @@
+ WAYLAND_PROTOCOLS=$(shell pkg-config --variable=pkgdatadir wayland-protocols)
+ WAYLAND_SCANNER=$(shell pkg-config --variable=wayland_scanner wayland-scanner)
+-LIBS=\
+- $(shell pkg-config --cflags --libs "wlroots >= 0.17.0") \
+- $(shell pkg-config --cflags --libs wayland-server) \
+- $(shell pkg-config --cflags --libs xkbcommon)
++
++PKGS="wlroots" wayland-server xkbcommon
++CFLAGS+=$(shell pkg-config --cflags $(PKGS))
++LIBS=$(shell pkg-config --libs $(PKGS))
+
+ # wayland-scanner is a tool which generates C headers and rigging for Wayland
+ # protocols, which are specified in XML. wlroots requires you to rig these up
+@@ -12,15 +12,13 @@ xdg-shell-protocol.h:
+ $(WAYLAND_SCANNER) server-header \
+ $(WAYLAND_PROTOCOLS)/stable/xdg-shell/xdg-shell.xml $@
+
+-tinywl: tinywl.c xdg-shell-protocol.h
+- $(CC) $(CFLAGS) \
+- -g -Werror -I. \
+- -DWLR_USE_UNSTABLE \
+- -o $@ $< \
+- $(LIBS)
++tinywl.o: tinywl.c xdg-shell-protocol.h
++ $(CC) -g -Werror $(CFLAGS) -I. -DWLR_USE_UNSTABLE -o $@ -c $<
++tinywl: tinywl.o
++ $(CC) $< -g -Werror $(CFLAGS) $(LDFLAGS) $(LIBS) -o $@
+
+ clean:
+- rm -f tinywl xdg-shell-protocol.h xdg-shell-protocol.c
++ rm -f tinywl tinywl.o xdg-shell-protocol.h
+
+ .DEFAULT_GOAL=tinywl
+ .PHONY: clean
+--
+2.45.2
+
+
+From 29451c3dd28ffd52eb3dcf20e47399a26ecafb3c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Leonardo=20Hern=C3=A1ndez=20Hern=C3=A1ndez?=
+ <leohdz172@proton.me>
+Date: Wed, 12 Jun 2024 17:58:54 -0600
+Subject: [PATCH 2/2] tinywl: allow specify pkg-config binary
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Leonardo Hernández Hernández <leohdz172@proton.me>
+--- a/tinywl/Makefile
++++ b/tinywl/Makefile
+@@ -1,9 +1,10 @@
+-WAYLAND_PROTOCOLS=$(shell pkg-config --variable=pkgdatadir wayland-protocols)
+-WAYLAND_SCANNER=$(shell pkg-config --variable=wayland_scanner wayland-scanner)
++PKG_CONFIG?=pkg-config
++WAYLAND_PROTOCOLS=$(shell $(PKG_CONFIG) --variable=pkgdatadir wayland-protocols)
++WAYLAND_SCANNER=$(shell $(PKG_CONFIG) --variable=wayland_scanner wayland-scanner)
+
+-PKGS="wlroots" wayland-server xkbcommon
+-CFLAGS+=$(shell pkg-config --cflags $(PKGS))
+-LIBS=$(shell pkg-config --libs $(PKGS))
++PKGS=wlroots wayland-server xkbcommon
++CFLAGS+=$(shell $(PKG_CONFIG) --cflags $(PKGS))
++LIBS=$(shell $(PKG_CONFIG) --libs $(PKGS))
+
+ # wayland-scanner is a tool which generates C headers and rigging for Wayland
+ # protocols, which are specified in XML. wlroots requires you to rig these up
+--
+2.45.2
+
diff --git a/gui-wm/tinywl/metadata.xml b/gui-wm/tinywl/metadata.xml
new file mode 100644
index 000000000000..66042ad13e3b
--- /dev/null
+++ b/gui-wm/tinywl/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>leohdz172@proton.me</email>
+ <name>Leonardo Hernández Hernández</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/gui-wm/tinywl/tinywl-0.17.4.ebuild b/gui-wm/tinywl/tinywl-0.17.4.ebuild
new file mode 100644
index 000000000000..5771bd7a0b8b
--- /dev/null
+++ b/gui-wm/tinywl/tinywl-0.17.4.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="\"minimum viable product\" Wayland compositor based on wlroots"
+HOMEPAGE="https://gitlab.freedesktop.org/wlroots/wlroots"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://gitlab.freedesktop.org/wlroots/wlroots.git"
+ inherit git-r3
+else
+ inherit verify-sig
+ SRC_URI="https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/${PV}/downloads/wlroots-${PV}.tar.gz
+ https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/${PV}/downloads/wlroots-${PV}.tar.gz.sig"
+ KEYWORDS="amd64 arm64 ppc64 ~riscv ~x86"
+ S="${WORKDIR}/wlroots-${PV}"
+fi
+
+LICENSE="CC0-1.0"
+SLOT="0"
+DEPEND="
+ dev-libs/wayland
+ x11-libs/libxkbcommon
+ =gui-libs/wlroots-$(ver_cut 1-2)*:=
+"
+RDEPEND="
+ ${DEPEND}
+ !gui-libs/wlroots[tinywl(-)]
+"
+BDEPEND="
+ dev-libs/wayland-protocols
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+"
+
+if [[ ${PV} != 9999 ]]; then
+ BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-emersion )"
+ VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/emersion.asc"
+fi
+
+PATCHES=( "${FILESDIR}/${P}"-improve-makefile.patch )
+
+src_prepare() {
+ default
+ sed -i -e "s/-Werror //" tinywl/Makefile || die
+}
+
+src_compile() {
+ local -x CFLAGS="${CFLAGS} ${CPPFLAGS}"
+ tc-export CC PKG_CONFIG
+ emake -C tinywl
+}
+
+src_install() {
+ dodoc tinywl/README.md
+ dobin tinywl/tinywl
+}
diff --git a/gui-wm/tinywl/tinywl-0.18.0.ebuild b/gui-wm/tinywl/tinywl-0.18.0.ebuild
new file mode 100644
index 000000000000..6b8f8735d17c
--- /dev/null
+++ b/gui-wm/tinywl/tinywl-0.18.0.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="\"minimum viable product\" Wayland compositor based on wlroots"
+HOMEPAGE="https://gitlab.freedesktop.org/wlroots/wlroots/-/tree/master/tinywl"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://gitlab.freedesktop.org/wlroots/wlroots.git"
+ inherit git-r3
+else
+ inherit verify-sig
+ SRC_URI="https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/${PV}/downloads/wlroots-${PV}.tar.gz
+ https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/${PV}/downloads/wlroots-${PV}.tar.gz.sig"
+ KEYWORDS="amd64 arm64 ~loong ppc64 ~riscv ~x86"
+ S="${WORKDIR}/wlroots-${PV}"
+fi
+
+LICENSE="CC0-1.0"
+SLOT="0"
+DEPEND="
+ dev-libs/wayland
+ x11-libs/libxkbcommon
+ =gui-libs/wlroots-$(ver_cut 1-2)*:=
+"
+RDEPEND="
+ ${DEPEND}
+ !gui-libs/wlroots[tinywl(-)]
+"
+BDEPEND="
+ dev-libs/wayland-protocols
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+"
+
+if [[ ${PV} != 9999 ]]; then
+ BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-emersion )"
+ VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/emersion.asc"
+fi
+
+src_prepare() {
+ sed -i -e "s/-Werror //" tinywl/Makefile || die
+ default
+}
+
+src_compile() {
+ emake -C tinywl
+}
+
+src_install() {
+ dodoc tinywl/README.md
+ dobin tinywl/tinywl
+}
diff --git a/gui-wm/tinywl/tinywl-0.18.1.ebuild b/gui-wm/tinywl/tinywl-0.18.1.ebuild
new file mode 100644
index 000000000000..a8ee1e805513
--- /dev/null
+++ b/gui-wm/tinywl/tinywl-0.18.1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="\"minimum viable product\" Wayland compositor based on wlroots"
+HOMEPAGE="https://gitlab.freedesktop.org/wlroots/wlroots/-/tree/master/tinywl"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://gitlab.freedesktop.org/wlroots/wlroots.git"
+ inherit git-r3
+else
+ inherit verify-sig
+ SRC_URI="https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/${PV}/downloads/wlroots-${PV}.tar.gz
+ https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/${PV}/downloads/wlroots-${PV}.tar.gz.sig"
+ KEYWORDS="amd64 ~arm arm64 ~loong ppc64 ~riscv x86"
+ S="${WORKDIR}/wlroots-${PV}"
+fi
+
+LICENSE="CC0-1.0"
+SLOT="0"
+DEPEND="
+ dev-libs/wayland
+ x11-libs/libxkbcommon
+ =gui-libs/wlroots-$(ver_cut 1-2)*:=
+"
+RDEPEND="
+ ${DEPEND}
+ !gui-libs/wlroots[tinywl(-)]
+"
+BDEPEND="
+ dev-libs/wayland-protocols
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+"
+
+if [[ ${PV} != 9999 ]]; then
+ BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-emersion )"
+ VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/emersion.asc"
+fi
+
+src_prepare() {
+ sed -i -e "s/-Werror //" tinywl/Makefile || die
+ default
+}
+
+src_compile() {
+ emake -C tinywl
+}
+
+src_install() {
+ dodoc tinywl/README.md
+ dobin tinywl/tinywl
+}
diff --git a/gui-wm/tinywl/tinywl-0.19.2.ebuild b/gui-wm/tinywl/tinywl-0.19.2.ebuild
new file mode 100644
index 000000000000..6a2a1c8abbed
--- /dev/null
+++ b/gui-wm/tinywl/tinywl-0.19.2.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="\"minimum viable product\" Wayland compositor based on wlroots"
+HOMEPAGE="https://gitlab.freedesktop.org/wlroots/wlroots/-/tree/master/tinywl"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://gitlab.freedesktop.org/wlroots/wlroots.git"
+ inherit git-r3
+else
+ inherit verify-sig
+ SRC_URI="https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/${PV}/downloads/wlroots-${PV}.tar.gz
+ https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/${PV}/downloads/wlroots-${PV}.tar.gz.sig"
+ KEYWORDS="amd64 ~arm arm64 ~loong ppc64 ~riscv x86"
+ S="${WORKDIR}/wlroots-${PV}"
+fi
+
+LICENSE="CC0-1.0"
+SLOT="0"
+DEPEND="
+ dev-libs/wayland
+ x11-libs/libxkbcommon
+ =gui-libs/wlroots-$(ver_cut 1-2)*:=
+"
+RDEPEND="
+ ${DEPEND}
+ !gui-libs/wlroots[tinywl(-)]
+"
+BDEPEND="
+ dev-libs/wayland-protocols
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+"
+
+if [[ ${PV} != 9999 ]]; then
+ BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-emersion )"
+ VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/emersion.asc"
+fi
+
+src_prepare() {
+ sed -i -e "s/-Werror //" tinywl/Makefile || die
+ default
+}
+
+src_compile() {
+ tc-export CC PKG_CONFIG
+ emake -C tinywl
+}
+
+src_install() {
+ dodoc tinywl/README.md
+ dobin tinywl/tinywl
+}
diff --git a/gui-wm/tinywl/tinywl-0.20.0.ebuild b/gui-wm/tinywl/tinywl-0.20.0.ebuild
new file mode 100644
index 000000000000..a4523e1993bb
--- /dev/null
+++ b/gui-wm/tinywl/tinywl-0.20.0.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="\"minimum viable product\" Wayland compositor based on wlroots"
+HOMEPAGE="https://gitlab.freedesktop.org/wlroots/wlroots/-/tree/master/tinywl"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://gitlab.freedesktop.org/wlroots/wlroots.git"
+ inherit git-r3
+else
+ inherit verify-sig
+ SRC_URI="https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/${PV}/downloads/wlroots-${PV}.tar.gz
+ https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/${PV}/downloads/wlroots-${PV}.tar.gz.sig"
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+ S="${WORKDIR}/wlroots-${PV}"
+fi
+
+LICENSE="CC0-1.0"
+SLOT="0"
+COMMON_DEPEND="
+ dev-libs/wayland
+ x11-libs/libxkbcommon
+ =gui-libs/wlroots-$(ver_cut 1-2)*:=
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ dev-libs/wayland-protocols
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ !gui-libs/wlroots[tinywl(-)]
+"
+BDEPEND="virtual/pkgconfig"
+
+if [[ ${PV} != 9999 ]]; then
+ BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-emersion )"
+ VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/emersion.asc"
+fi
+
+src_prepare() {
+ sed -i -e "s/-Werror //" tinywl/Makefile || die
+ default
+}
+
+src_compile() {
+ tc-export CC PKG_CONFIG
+ emake -C tinywl
+}
+
+src_install() {
+ dodoc tinywl/README.md
+ dobin tinywl/tinywl
+}
diff --git a/gui-wm/tinywl/tinywl-9999.ebuild b/gui-wm/tinywl/tinywl-9999.ebuild
new file mode 100644
index 000000000000..a4523e1993bb
--- /dev/null
+++ b/gui-wm/tinywl/tinywl-9999.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="\"minimum viable product\" Wayland compositor based on wlroots"
+HOMEPAGE="https://gitlab.freedesktop.org/wlroots/wlroots/-/tree/master/tinywl"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://gitlab.freedesktop.org/wlroots/wlroots.git"
+ inherit git-r3
+else
+ inherit verify-sig
+ SRC_URI="https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/${PV}/downloads/wlroots-${PV}.tar.gz
+ https://gitlab.freedesktop.org/wlroots/wlroots/-/releases/${PV}/downloads/wlroots-${PV}.tar.gz.sig"
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+ S="${WORKDIR}/wlroots-${PV}"
+fi
+
+LICENSE="CC0-1.0"
+SLOT="0"
+COMMON_DEPEND="
+ dev-libs/wayland
+ x11-libs/libxkbcommon
+ =gui-libs/wlroots-$(ver_cut 1-2)*:=
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ dev-libs/wayland-protocols
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ !gui-libs/wlroots[tinywl(-)]
+"
+BDEPEND="virtual/pkgconfig"
+
+if [[ ${PV} != 9999 ]]; then
+ BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-emersion )"
+ VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/emersion.asc"
+fi
+
+src_prepare() {
+ sed -i -e "s/-Werror //" tinywl/Makefile || die
+ default
+}
+
+src_compile() {
+ tc-export CC PKG_CONFIG
+ emake -C tinywl
+}
+
+src_install() {
+ dodoc tinywl/README.md
+ dobin tinywl/tinywl
+}
diff --git a/gui-wm/wayfire/Manifest b/gui-wm/wayfire/Manifest
new file mode 100644
index 000000000000..8daf19658584
--- /dev/null
+++ b/gui-wm/wayfire/Manifest
@@ -0,0 +1 @@
+DIST wayfire-0.10.1.tar.xz 941092 BLAKE2B 857610f2e4df4f9b1e6a39d10f3d935b8948ac8811723ac376f48afd9376098574a1da8ab22b8507dcc896ca1bb6e32041242853bd0c371473f05022e6e25e14 SHA512 39cca8c57220fac80ce8103e8b0468a108dca16e5a4cacb3c5bdb778e47a31adf3263d77c67ce19cbb026ff5c3300d05b53a2639379bd0d28569161a04c73c32
diff --git a/gui-wm/wayfire/files/wayfire-0.10.0-fix-musl.patch b/gui-wm/wayfire/files/wayfire-0.10.0-fix-musl.patch
new file mode 100644
index 000000000000..d7398049ca6e
--- /dev/null
+++ b/gui-wm/wayfire/files/wayfire-0.10.0-fix-musl.patch
@@ -0,0 +1,28 @@
+https://github.com/WayfireWM/wayfire/pull/2875/commits/4040e432f917fb488477193304142553e0df8413
+https://bugs.gentoo.org/966059
+
+From: Sammy <samexner@protonmail.com>
+Date: Sun, 2 Nov 2025 18:45:01 -0700
+Subject: [PATCH] fix musl compilation
+
+changed uint to standard type unsigned int, fixes compilation error on musl
+--- a/src/json.cpp
++++ b/src/json.cpp
+@@ -225,7 +225,7 @@ json_reference_t& json_reference_t::operator =(const int& v)
+ return *this;
+ }
+
+-json_reference_t& json_reference_t::operator =(const uint& v)
++json_reference_t& json_reference_t::operator =(const unsigned int& v)
+ {
+ yyjson_mut_set_uint(this->v, v);
+ return *this;
+@@ -331,7 +331,7 @@ bool json_reference_t::is_uint() const
+ (yyjson_mut_get_uint(v) <= std::numeric_limits<unsigned int>::max());
+ }
+
+-json_reference_t::operator uint() const
++json_reference_t::operator unsigned int() const
+ {
+ wf::dassert(is_uint());
+ return yyjson_mut_get_uint(v);
diff --git a/gui-wm/wayfire/files/wayfire-session-2 b/gui-wm/wayfire/files/wayfire-session-2
new file mode 100644
index 000000000000..0713ca0bbb93
--- /dev/null
+++ b/gui-wm/wayfire/files/wayfire-session-2
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+# output to syslog and stderr
+# with PID and syslog identity 'wayfire'
+exec 1> >(logger --id=$$ --stderr --tag wayfire) 2>&1
+
+# if undefined, or empty, set to freedesktop specification defaults
+[ -z "$XDG_DATA_DIRS" ] && export XDG_DATA_DIRS="/usr/local/share:/usr/share"
+
+# freedesktop specifications mandate that the definition
+# of XDG_SESSION_TYPE should be respected
+export XDG_SESSION_TYPE=wayland
+export GDK_BACKEND=wayland
+export QT_QPA_PLATFORM=wayland
+export MOZ_ENABLE_WAYLAND=1
+
+# copy wayfire.ini to $HOME/.config/ if not already there
+configdir="${XDG_CONFIG_HOME:=${HOME}/.config}"
+if [[ ! -f ${configdir}/wayfire.ini ]]; then
+ cp /usr/share/wayfire/wayfire.ini "${configdir}"
+fi
+
+# override or add environment variables
+[[ -f @EPREFIX@/etc/wayfire.env ]] && . @EPREFIX@/etc/wayfire.env
+
+exec @DBUS_RUN_SESSION@ @EPREFIX@/usr/bin/wayfire "$@"
diff --git a/gui-wm/wayfire/files/wayfire-session.desktop b/gui-wm/wayfire/files/wayfire-session.desktop
new file mode 100644
index 000000000000..1088c4e0b793
--- /dev/null
+++ b/gui-wm/wayfire/files/wayfire-session.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Name=Wayfire Session
+Comment=wayfire session with proper env vars
+Exec=@EPREFIX@/usr/bin/wayfire-session $*
+TryExec=@EPREFIX@/usr/bin/wayfire-session
+Type=Application
+DesktopNames=Wayfire
diff --git a/gui-wm/wayfire/files/wayfire.env b/gui-wm/wayfire/files/wayfire.env
new file mode 100644
index 000000000000..47ce61e3183c
--- /dev/null
+++ b/gui-wm/wayfire/files/wayfire.env
@@ -0,0 +1,2 @@
+# Uncomment if the mouse cursor is invisible:
+#export WLR_NO_HARDWARE_CURSORS=1
diff --git a/gui-wm/wayfire/metadata.xml b/gui-wm/wayfire/metadata.xml
new file mode 100644
index 000000000000..685eff59bd33
--- /dev/null
+++ b/gui-wm/wayfire/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>ceamac@gentoo.org</email>
+ <name>Viorel Munteanu</name>
+ </maintainer>
+ <longdescription>
+ compiz like eye-candy 3D wayland, with low memory footprint.
+ Aims to bring desktop features such as 3D cube, fire burn,
+ fisheye, wrot and all other desktop effects to wayland.
+ </longdescription>
+ <use>
+ <flag name="gles3">Enable OpenGL ES 3.x Features.</flag>
+ <flag name="X">Enable support for X11 applications (XWayland).</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/gui-wm/wayfire/wayfire-0.10.1.ebuild b/gui-wm/wayfire/wayfire-0.10.1.ebuild
new file mode 100644
index 000000000000..97f508b4cfcf
--- /dev/null
+++ b/gui-wm/wayfire/wayfire-0.10.1.ebuild
@@ -0,0 +1,123 @@
+# Copyright 2019-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit dot-a meson toolchain-funcs
+
+DESCRIPTION="compiz like 3D wayland compositor"
+HOMEPAGE="https://github.com/WayfireWM/wayfire"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/WayfireWM/${PN}.git"
+ SLOT="0/0.10"
+else
+ SRC_URI="https://github.com/WayfireWM/${PN}/releases/download/v${PV}/${P}.tar.xz"
+ KEYWORDS="amd64 arm64 ~riscv"
+ SLOT="0/$(ver_cut 1-2)"
+fi
+
+LICENSE="MIT"
+IUSE="X +dbus +gles3 openmp test"
+RESTRICT="!test? ( test )"
+
+# bundled wlroots has the following dependency string according to included headers.
+# wlroots[drm,gles2-renderer,libinput,x11-backend?,X?]
+# enable x11-backend with X and vice versa
+COMMON_DEPEND="
+ dev-cpp/nlohmann_json
+ dev-libs/glib:2
+ dev-libs/libevdev
+ dev-libs/libinput:=
+ dev-libs/wayland
+ dev-libs/yyjson
+ >=dev-libs/wayland-protocols-1.12
+ gui-libs/wf-config:${SLOT}
+ gui-libs/wlroots:0.19[drm(+),libinput(+),x11-backend,X?]
+ media-libs/glm
+ media-libs/libglvnd
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ media-libs/vulkan-loader
+ virtual/libudev:=
+ x11-libs/cairo
+ x11-libs/libxkbcommon
+ x11-libs/pango
+ x11-libs/pixman
+ dbus? ( sys-apps/dbus )
+ X? ( x11-libs/libxcb:= )
+"
+
+RDEPEND="
+ ${COMMON_DEPEND}
+ x11-misc/xkeyboard-config
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ test? ( dev-cpp/doctest )
+"
+BDEPEND="
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+ openmp? (
+ || (
+ sys-devel/gcc[openmp]
+ llvm-runtimes/clang-runtime[openmp]
+ )
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.10.0-fix-musl.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+src_prepare() {
+ default
+
+ local dbusrunsession=$(usev dbus dbus-run-session)
+ sed -e "s:@EPREFIX@:${EPREFIX}:g" -e "s:@DBUS_RUN_SESSION@:${dbusrunsession}:" \
+ "${FILESDIR}"/wayfire-session-2 > "${T}"/wayfire-session || die
+ sed -e "s:@EPREFIX@:${EPREFIX}:" \
+ "${FILESDIR}"/wayfire-session.desktop > "${T}"/wayfire-session.desktop || die
+}
+
+src_configure() {
+ lto-guarantee-fat
+
+ local emesonargs=(
+ $(meson_feature test tests)
+ $(meson_feature X xwayland)
+ $(meson_use gles3 enable_gles32)
+ $(meson_use openmp enable_openmp)
+ -Duse_system_wfconfig=enabled
+ -Duse_system_wlroots=enabled
+ )
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+ dobin "${T}"/wayfire-session
+
+ insinto "/usr/share/wayland-sessions/"
+ insopts -m644
+ doins wayfire.desktop
+ doins "${T}"/wayfire-session.desktop
+
+ insinto "/usr/share/wayfire/"
+ doins wayfire.ini
+
+ insinto "/etc"
+ doins "${FILESDIR}"/wayfire.env
+
+ strip-lto-bytecode
+}
diff --git a/gui-wm/wayfire/wayfire-9999.ebuild b/gui-wm/wayfire/wayfire-9999.ebuild
new file mode 100644
index 000000000000..637674666d54
--- /dev/null
+++ b/gui-wm/wayfire/wayfire-9999.ebuild
@@ -0,0 +1,119 @@
+# Copyright 2019-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit dot-a meson toolchain-funcs
+
+DESCRIPTION="compiz like 3D wayland compositor"
+HOMEPAGE="https://github.com/WayfireWM/wayfire"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/WayfireWM/${PN}.git"
+ SLOT="0/0.11"
+else
+ SRC_URI="https://github.com/WayfireWM/${PN}/releases/download/v${PV}/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm64 ~riscv"
+ SLOT="0/$(ver_cut 1-2)"
+fi
+
+LICENSE="MIT"
+IUSE="X +dbus +gles3 openmp test"
+RESTRICT="!test? ( test )"
+
+# bundled wlroots has the following dependency string according to included headers.
+# wlroots[drm,gles2-renderer,libinput,x11-backend?,X?]
+# enable x11-backend with X and vice versa
+COMMON_DEPEND="
+ dev-cpp/nlohmann_json
+ dev-libs/glib:2
+ dev-libs/libevdev
+ dev-libs/libinput:=
+ dev-libs/wayland
+ dev-libs/yyjson
+ >=dev-libs/wayland-protocols-1.12
+ gui-libs/wf-config:${SLOT}
+ gui-libs/wlroots:0.19[drm(+),libinput(+),x11-backend,X?]
+ media-libs/glm
+ media-libs/libglvnd
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ media-libs/vulkan-loader
+ virtual/libudev:=
+ x11-libs/cairo
+ x11-libs/libxkbcommon
+ x11-libs/pango
+ x11-libs/pixman
+ dbus? ( sys-apps/dbus )
+ X? ( x11-libs/libxcb:= )
+"
+
+RDEPEND="
+ ${COMMON_DEPEND}
+ x11-misc/xkeyboard-config
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ test? ( dev-cpp/doctest )
+"
+BDEPEND="
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+ openmp? (
+ || (
+ sys-devel/gcc[openmp]
+ llvm-runtimes/clang-runtime[openmp]
+ )
+ )
+"
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+src_prepare() {
+ default
+
+ local dbusrunsession=$(usev dbus dbus-run-session)
+ sed -e "s:@EPREFIX@:${EPREFIX}:g" -e "s:@DBUS_RUN_SESSION@:${dbusrunsession}:" \
+ "${FILESDIR}"/wayfire-session-2 > "${T}"/wayfire-session || die
+ sed -e "s:@EPREFIX@:${EPREFIX}:" \
+ "${FILESDIR}"/wayfire-session.desktop > "${T}"/wayfire-session.desktop || die
+}
+
+src_configure() {
+ lto-guarantee-fat
+
+ local emesonargs=(
+ $(meson_feature test tests)
+ $(meson_feature X xwayland)
+ $(meson_use gles3 enable_gles32)
+ $(meson_use openmp enable_openmp)
+ -Duse_system_wfconfig=enabled
+ -Duse_system_wlroots=enabled
+ )
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+ dobin "${T}"/wayfire-session
+
+ insinto "/usr/share/wayland-sessions/"
+ insopts -m644
+ doins wayfire.desktop
+ doins "${T}"/wayfire-session.desktop
+
+ insinto "/usr/share/wayfire/"
+ doins wayfire.ini
+
+ insinto "/etc"
+ doins "${FILESDIR}"/wayfire.env
+
+ strip-lto-bytecode
+}