diff options
| author | root <root@alpha.trunkmasters.com> | 2026-09-18 21:53:21 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-09-18 21:53:21 -0500 |
| commit | 9720a11af1e64187117d3c485b8df96672a294fe (patch) | |
| tree | b59d49bd17ee8adbe820732ab0ddd8a05b9068f5 /gui-apps | |
| parent | ba2db746adde666ba2fbd08e45472b5de2d61510 (diff) | |
| download | baldeagleos-repo-9720a11af1e64187117d3c485b8df96672a294fe.tar.gz baldeagleos-repo-9720a11af1e64187117d3c485b8df96672a294fe.tar.xz baldeagleos-repo-9720a11af1e64187117d3c485b8df96672a294fe.zip | |
Checkpoint dirty output before beosrepo update
Diffstat (limited to 'gui-apps')
| -rw-r--r-- | gui-apps/waybar/files/meson-fix-build.patch | 38 | ||||
| -rw-r--r-- | gui-apps/waybar/files/tray-icons-fix.patch | 99 | ||||
| -rw-r--r-- | gui-apps/waybar/files/waybar-0.15.0-add-hyprland-lua-ipc.patch | 163 | ||||
| -rw-r--r-- | gui-apps/waybar/waybar-0.10.4-r1.ebuild | 101 | ||||
| -rw-r--r-- | gui-apps/waybar/waybar-0.11.0-r1.ebuild | 105 | ||||
| -rw-r--r-- | gui-apps/waybar/waybar-0.11.0.ebuild | 101 | ||||
| -rw-r--r-- | gui-apps/waybar/waybar-0.12.0.ebuild | 105 | ||||
| -rw-r--r-- | gui-apps/waybar/waybar-0.14.0.ebuild | 121 |
8 files changed, 670 insertions, 163 deletions
diff --git a/gui-apps/waybar/files/meson-fix-build.patch b/gui-apps/waybar/files/meson-fix-build.patch new file mode 100644 index 000000000000..cee64a56a395 --- /dev/null +++ b/gui-apps/waybar/files/meson-fix-build.patch @@ -0,0 +1,38 @@ +From 69c61c3d9ae8f7397d64570412655007ea086c56 Mon Sep 17 00:00:00 2001 +From: ShengYi Hung <aokblast@FreeBSD.org> +Date: Sun, 23 Aug 2026 12:45:10 +0800 +Subject: [PATCH] meson: Fix unwinding error in libunwind over glibc + +glibc's pthread_cancel dlopens libgcc_s.so.1 and uses its unwinder, +while libc++abi's personality routine resolves the Unwind* accessors +from the global scope, where LLVM libunwind wins. This causes the two +unwinders to interpret each other's unwind context incorrectly, and +cancelling a thread segfaults. Pull libgcc_s into DT_NEEDED before +libc++abi/libunwind so all Unwind* symbols resolve to the same unwinder. +--- + meson.build | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 5dc7338d5f..88be32e27b 100644 +--- a/meson.build ++++ b/meson.build +@@ -17,7 +17,17 @@ cpp_link_args = [] + + if get_option('libcxx') + cpp_args += ['-stdlib=libc++'] +- cpp_link_args += ['-stdlib=libc++', '-lc++abi'] ++ cpp_link_args += ['-stdlib=libc++'] ++ # glibc's pthread_cancel dlopens libgcc_s.so.1 and forces the unwind through ++ # that unwinder, while libc++abi's personality routine resolves the _Unwind_* ++ # accessors through the global scope, where LLVM libunwind wins. The two read ++ # each other's unwind context as their own, so cancelling a thread ++ # (SleeperThread::stop) segfaults. Pull libgcc_s into DT_NEEDED ahead of ++ # libc++abi/libunwind so every _Unwind_* symbol resolves to one unwinder. ++ if compiler.has_link_argument('-lgcc_s') ++ cpp_link_args += ['-Wl,--push-state,--no-as-needed', '-lgcc_s', '-Wl,--pop-state'] ++ endif ++ cpp_link_args += ['-lc++abi'] + endif + + if compiler.has_link_argument('-lc++fs') diff --git a/gui-apps/waybar/files/tray-icons-fix.patch b/gui-apps/waybar/files/tray-icons-fix.patch new file mode 100644 index 000000000000..95bf11ffca16 --- /dev/null +++ b/gui-apps/waybar/files/tray-icons-fix.patch @@ -0,0 +1,99 @@ +diff --git a/src/modules/sni/item.cpp b/src/modules/sni/item.cpp +index 8afb39fb3..6c4ec8c06 100644 +--- a/src/modules/sni/item.cpp ++++ b/src/modules/sni/item.cpp +@@ -104,11 +104,9 @@ void Item::proxyReady(Glib::RefPtr<Gio::AsyncResult>& result) { + this->updateImage(); + + } catch (const Glib::Error& err) { +- spdlog::error("Failed to create DBus Proxy for {} {}: {}", bus_name, object_path, +- std::string(err.what())); ++ spdlog::error("Failed to create DBus Proxy for {} {}: {}", bus_name, object_path, err.what()); + } catch (const std::exception& err) { +- spdlog::error("Failed to create DBus Proxy for {} {}: {}", bus_name, object_path, +- std::string(err.what())); ++ spdlog::error("Failed to create DBus Proxy for {} {}: {}", bus_name, object_path, err.what()); + } + } + +@@ -126,15 +124,14 @@ ToolTip get_variant<ToolTip>(const Glib::VariantBase& value) { + result.text = get_variant<Glib::ustring>(container.get_child(2)); + auto description = get_variant<Glib::ustring>(container.get_child(3)); + if (!description.empty()) { +- result.text = fmt::format("<b>{}</b>\n{}", std::string(result.text), std::string(description)); ++ result.text = fmt::format("<b>{}</b>\n{}", result.text, description); + } + return result; + } + + void Item::setProperty(const Glib::ustring& name, Glib::VariantBase& value) { + try { +- spdlog::trace("Set tray item property: {}.{} = {}", id.empty() ? bus_name : id, +- std::string(name), get_variant<std::string>(value)); ++ spdlog::trace("Set tray item property: {}.{} = {}", id.empty() ? bus_name : id, name, value); + + if (name == "Category") { + category = get_variant<std::string>(value); +@@ -179,12 +176,10 @@ void Item::setProperty(const Glib::ustring& name, Glib::VariantBase& value) { + } + } catch (const Glib::Error& err) { + spdlog::warn("Failed to set tray item property: {}.{}, value = {}, err = {}", +- id.empty() ? bus_name : id, std::string(name), get_variant<std::string>(value), +- std::string(err.what())); ++ id.empty() ? bus_name : id, name, value, err.what()); + } catch (const std::exception& err) { + spdlog::warn("Failed to set tray item property: {}.{}, value = {}, err = {}", +- id.empty() ? bus_name : id, std::string(name), get_variant<std::string>(value), +- std::string(err.what())); ++ id.empty() ? bus_name : id, name, value, err.what()); + } + } + +@@ -226,9 +221,9 @@ void Item::processUpdatedProperties(Glib::RefPtr<Gio::AsyncResult>& _result) { + + this->updateImage(); + } catch (const Glib::Error& err) { +- spdlog::warn("Failed to update properties: {}", std::string(err.what())); ++ spdlog::warn("Failed to update properties: {}", err.what()); + } catch (const std::exception& err) { +- spdlog::warn("Failed to update properties: {}", std::string(err.what())); ++ spdlog::warn("Failed to update properties: {}", err.what()); + } + update_pending_.clear(); + } +@@ -250,7 +245,7 @@ static const std::map<std::string_view, std::set<std::string_view>> signal2props + + void Item::onSignal(const Glib::ustring& sender_name, const Glib::ustring& signal_name, + const Glib::VariantContainerBase& arguments) { +- spdlog::trace("Tray item '{}' got signal {}", id, std::string(signal_name)); ++ spdlog::trace("Tray item '{}' got signal {}", id, signal_name); + auto changed = signal2props.find(signal_name.raw()); + if (changed != signal2props.end()) { + if (update_pending_.empty()) { +diff --git a/subprojects/fmt.wrap b/subprojects/fmt.wrap +index 42b615963..fd508477f 100644 +--- a/subprojects/fmt.wrap ++++ b/subprojects/fmt.wrap +@@ -1,13 +1,13 @@ + [wrap-file] +-directory = fmt-11.0.1 +-source_url = https://github.com/fmtlib/fmt/archive/11.0.1.tar.gz +-source_filename = fmt-11.0.1.tar.gz +-source_hash = 7d009f7f89ac84c0a83f79ed602463d092fbf66763766a907c97fd02b100f5e9 +-patch_filename = fmt_11.0.1-1_patch.zip +-patch_url = https://wrapdb.mesonbuild.com/v2/fmt_11.0.1-1/get_patch +-patch_hash = 0a8b93d1ee6d84a82d3872a9bfb4c3977d8a53f7f484d42d1f7ed63ed496d549 +-source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/fmt_11.0.1-1/fmt-11.0.1.tar.gz +-wrapdb_version = 11.0.1-1 ++directory = fmt-11.0.2 ++source_url = https://github.com/fmtlib/fmt/archive/11.0.2.tar.gz ++source_filename = fmt-11.0.2.tar.gz ++source_hash = 6cb1e6d37bdcb756dbbe59be438790db409cdb4868c66e888d5df9f13f7c027f ++patch_filename = fmt_11.0.2-1_patch.zip ++patch_url = https://wrapdb.mesonbuild.com/v2/fmt_11.0.2-1/get_patch ++patch_hash = 90c9e3b8e8f29713d40ca949f6f93ad115d78d7fb921064112bc6179e6427c5e ++source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/fmt_11.0.2-1/fmt-11.0.2.tar.gz ++wrapdb_version = 11.0.2-1 + + [provide] + fmt = fmt_dep diff --git a/gui-apps/waybar/files/waybar-0.15.0-add-hyprland-lua-ipc.patch b/gui-apps/waybar/files/waybar-0.15.0-add-hyprland-lua-ipc.patch deleted file mode 100644 index c28cba9cc8bf..000000000000 --- a/gui-apps/waybar/files/waybar-0.15.0-add-hyprland-lua-ipc.patch +++ /dev/null @@ -1,163 +0,0 @@ -commit 37d6ad727c0973e343bf4bf07031f61aba772d56 -Author: Higor Prado <higorevop@gmail.com> - - fix(hyprland/workspaces): adapt dispatch commands for Lua IPC protocol - -diff --git a/include/modules/hyprland/backend.hpp b/include/modules/hyprland/backend.hpp -index 2e0ef657..84e056fa 100644 ---- a/include/modules/hyprland/backend.hpp -+++ b/include/modules/hyprland/backend.hpp -@@ -3,6 +3,7 @@ - #include <filesystem> - #include <list> - #include <mutex> -+#include <optional> - #include <string> - #include <thread> - #include <utility> -@@ -34,6 +35,10 @@ class IPC { - Json::Value getSocket1JsonReply(const std::string& rq); - static std::filesystem::path getSocketFolder(const char* instanceSig); - -+ /// Dispatch a Hyprland command. Automatically uses the correct protocol -+ /// (legacy text or Lua-based) depending on the running Hyprland version. -+ static std::string dispatch(const std::string& dispatcher, const std::string& arg); -+ - protected: - static std::filesystem::path socketFolder_; - -@@ -41,6 +46,15 @@ class IPC { - void socketListener(); - void parseIPC(const std::string&); - -+ /// Detect whether the running Hyprland uses the Lua-based IPC protocol. -+ /// Returns true for Hyprland >= 0.54 (Lua config), false for older versions. -+ static bool isLuaProtocol(); -+ -+ /// Build a Lua-format dispatch command string. -+ static std::string buildLuaDispatch(const std::string& dispatcher, const std::string& arg); -+ -+ static std::optional<bool> s_luaProtocolDetected_; // cached detection result -+ - std::thread ipcThread_; - std::mutex callbackMutex_; - util::JsonParser parser_; -diff --git a/src/modules/hyprland/backend.cpp b/src/modules/hyprland/backend.cpp -index 7060d304..1f772ecb 100644 ---- a/src/modules/hyprland/backend.cpp -+++ b/src/modules/hyprland/backend.cpp -@@ -10,11 +10,13 @@ - #include <unistd.h> - - #include <filesystem> -+#include <optional> - #include <string> - - namespace waybar::modules::hyprland { - - std::filesystem::path IPC::socketFolder_; -+std::optional<bool> IPC::s_luaProtocolDetected_; - - std::filesystem::path IPC::getSocketFolder(const char* instanceSig) { - static std::mutex folderMutex; -@@ -243,4 +245,69 @@ Json::Value IPC::getSocket1JsonReply(const std::string& rq) { - return parser_.parse(reply); - } - -+bool IPC::isLuaProtocol() { -+ if (s_luaProtocolDetected_.has_value()) { -+ return *s_luaProtocolDetected_; -+ } -+ -+ // Probe: send a harmless old-style dispatch and check the error. -+ // In Lua-based Hyprland (>= 0.54) the error contains "hl.dispatch". -+ // In older versions it returns "ok" or a different error. -+ auto reply = getSocket1Reply("dispatch workspace __waybar_probe__"); -+ bool luaProto = reply.find("hl.dispatch") != std::string::npos; -+ -+ if (luaProto) { -+ spdlog::info("Hyprland IPC: detected Lua-based dispatch protocol (Hyprland >= 0.54)"); -+ } else { -+ spdlog::info("Hyprland IPC: detected legacy dispatch protocol"); -+ } -+ -+ s_luaProtocolDetected_ = luaProto; -+ return luaProto; -+} -+ -+std::string IPC::buildLuaDispatch(const std::string& dispatcher, const std::string& arg) { -+ // Map old-style dispatchers to the new Lua hl.dsp API. -+ // -+ // Old format: dispatch workspace 1 -+ // New format: /dispatch hl.dsp.focus({ workspace = "1" }) -+ // -+ // Old format: dispatch focusworkspaceoncurrentmonitor 2 -+ // New format: /dispatch hl.dsp.focus({ workspace = "2", monitor = "current" }) -+ // -+ // Old format: dispatch togglespecialworkspace name -+ // New format: /dispatch hl.dsp.workspace.toggle_special("name") -+ -+ if (dispatcher == "workspace") { -+ return "/dispatch hl.dsp.focus({ workspace = \"" + arg + "\" })"; -+ } -+ if (dispatcher == "focusworkspaceoncurrentmonitor") { -+ return "/dispatch hl.dsp.focus({ workspace = \"" + arg + "\", monitor = \"current\" })"; -+ } -+ if (dispatcher == "togglespecialworkspace") { -+ if (arg.empty()) { -+ return "/dispatch hl.dsp.workspace.toggle_special()"; -+ } -+ return "/dispatch hl.dsp.workspace.toggle_special(\"" + arg + "\")"; -+ } -+ -+ // Fallback for any other dispatcher: try the old format wrapped in dispatch(). -+ // This may not work for all dispatchers, but it's a reasonable default. -+ spdlog::warn("Hyprland IPC: unknown dispatcher '{}' in Lua mode, attempting generic format", -+ dispatcher); -+ return "/dispatch hl.dsp." + dispatcher + "(\"" + arg + "\")"; -+} -+ -+std::string IPC::dispatch(const std::string& dispatcher, const std::string& arg) { -+ if (isLuaProtocol()) { -+ return getSocket1Reply(buildLuaDispatch(dispatcher, arg)); -+ } -+ // Legacy format: "dispatch <dispatcher> <arg>" -+ std::string cmd = "dispatch " + dispatcher; -+ if (!arg.empty()) { -+ cmd += " " + arg; -+ } -+ return getSocket1Reply(cmd); -+} -+ - } // namespace waybar::modules::hyprland -diff --git a/src/modules/hyprland/workspace.cpp b/src/modules/hyprland/workspace.cpp -index 4cdd8910..b8090bd0 100644 ---- a/src/modules/hyprland/workspace.cpp -+++ b/src/modules/hyprland/workspace.cpp -@@ -71,20 +71,20 @@ bool Workspace::handleClicked(GdkEventButton* bt) const { - try { - if (id() > 0) { // normal - if (m_workspaceManager.moveToMonitor()) { -- m_ipc.getSocket1Reply("dispatch focusworkspaceoncurrentmonitor " + std::to_string(id())); -+ IPC::dispatch("focusworkspaceoncurrentmonitor", std::to_string(id())); - } else { -- m_ipc.getSocket1Reply("dispatch workspace " + std::to_string(id())); -+ IPC::dispatch("workspace", std::to_string(id())); - } - } else if (!isSpecial()) { // named (this includes persistent) - if (m_workspaceManager.moveToMonitor()) { -- m_ipc.getSocket1Reply("dispatch focusworkspaceoncurrentmonitor name:" + name()); -+ IPC::dispatch("focusworkspaceoncurrentmonitor", "name:" + name()); - } else { -- m_ipc.getSocket1Reply("dispatch workspace name:" + name()); -+ IPC::dispatch("workspace", "name:" + name()); - } - } else if (id() != -99) { // named special -- m_ipc.getSocket1Reply("dispatch togglespecialworkspace " + name()); -+ IPC::dispatch("togglespecialworkspace", name()); - } else { // special -- m_ipc.getSocket1Reply("dispatch togglespecialworkspace"); -+ IPC::dispatch("togglespecialworkspace", ""); - } - return true; - } catch (const std::exception& e) { diff --git a/gui-apps/waybar/waybar-0.10.4-r1.ebuild b/gui-apps/waybar/waybar-0.10.4-r1.ebuild new file mode 100644 index 000000000000..02de587d2d29 --- /dev/null +++ b/gui-apps/waybar/waybar-0.10.4-r1.ebuild @@ -0,0 +1,101 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit meson + +DESCRIPTION="Highly customizable Wayland bar for Sway and Wlroots based compositors" +HOMEPAGE="https://github.com/Alexays/Waybar" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/Alexays/${PN^}.git" +else + SRC_URI="https://github.com/Alexays/${PN^}/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="amd64 ~arm64" + S="${WORKDIR}/${PN^}-${PV}" +fi + +LICENSE="MIT" +SLOT="0" +IUSE="evdev experimental jack +libinput +logind mpd mpris network pipewire pulseaudio sndio systemd test tray +udev upower wifi" +REQUIRED_USE=" + upower? ( logind ) +" + +RESTRICT="!test? ( test )" + +BDEPEND=" + >=app-text/scdoc-1.9.2 + >=dev-util/gdbus-codegen-2.80.5-r1 + dev-util/wayland-scanner + virtual/pkgconfig +" +RDEPEND=" + dev-cpp/cairomm:0 + dev-cpp/glibmm:2 + dev-cpp/gtkmm:3.0 + dev-libs/glib:2 + dev-libs/jsoncpp:= + dev-libs/libsigc++:2 + >=dev-libs/libfmt-8.1.1:= + >=dev-libs/spdlog-1.10.0:= + dev-libs/date:= + dev-libs/wayland + gui-libs/gtk-layer-shell + media-video/pipewire:= + x11-libs/gtk+:3[wayland] + x11-libs/libxkbcommon + evdev? ( dev-libs/libevdev ) + jack? ( virtual/jack ) + libinput? ( dev-libs/libinput:= ) + logind? ( + || ( sys-apps/systemd + sys-auth/elogind ) + ) + mpd? ( media-libs/libmpdclient ) + mpris? ( >=media-sound/playerctl-2 ) + network? ( dev-libs/libnl:3 ) + pipewire? ( media-video/wireplumber:0/0.5 ) + pulseaudio? ( media-libs/libpulse ) + sndio? ( media-sound/sndio:= ) + systemd? ( sys-apps/systemd:= ) + tray? ( + dev-libs/libayatana-appindicator + dev-libs/libdbusmenu[gtk3] + ) + udev? ( virtual/libudev:= ) + upower? ( sys-power/upower:= ) + wifi? ( sys-apps/util-linux ) +" +DEPEND="${RDEPEND} + dev-libs/wayland-protocols + test? ( dev-cpp/catch:0 ) +" + +src_configure() { + local emesonargs=( + -Dman-pages=enabled + -Dcava=disabled + $(meson_feature evdev libevdev) + $(meson_feature jack) + $(meson_feature libinput) + $(meson_feature logind) + $(meson_feature mpd) + $(meson_feature mpris) + $(meson_feature network libnl) + $(meson_feature pulseaudio) + $(meson_feature pipewire wireplumber) + $(meson_feature pipewire) + $(meson_feature sndio) + $(meson_feature systemd) + $(meson_feature test tests) + $(meson_feature tray dbusmenu-gtk) + $(meson_feature udev libudev) + $(meson_feature upower upower_glib) + $(meson_feature wifi rfkill) + $(meson_use experimental) + ) + meson_src_configure +} diff --git a/gui-apps/waybar/waybar-0.11.0-r1.ebuild b/gui-apps/waybar/waybar-0.11.0-r1.ebuild new file mode 100644 index 000000000000..845a6694bb69 --- /dev/null +++ b/gui-apps/waybar/waybar-0.11.0-r1.ebuild @@ -0,0 +1,105 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit meson + +DESCRIPTION="Highly customizable Wayland bar for Sway and Wlroots based compositors" +HOMEPAGE="https://github.com/Alexays/Waybar" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/Alexays/${PN^}.git" +else + SRC_URI="https://github.com/Alexays/${PN^}/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="amd64 ~arm64" + S="${WORKDIR}/${PN^}-${PV}" +fi + +LICENSE="MIT" +SLOT="0" +IUSE="evdev experimental jack +libinput +logind mpd mpris network pipewire pulseaudio sndio systemd test tray +udev upower wifi" +REQUIRED_USE=" + upower? ( logind ) +" + +RESTRICT="!test? ( test )" + +BDEPEND=" + >=app-text/scdoc-1.9.2 + >=dev-util/gdbus-codegen-2.80.5-r1 + dev-util/wayland-scanner + virtual/pkgconfig +" +RDEPEND=" + dev-cpp/cairomm:0 + dev-cpp/glibmm:2 + dev-cpp/gtkmm:3.0 + dev-libs/glib:2 + dev-libs/jsoncpp:= + dev-libs/libsigc++:2 + >=dev-libs/libfmt-8.1.1:= + >=dev-libs/spdlog-1.10.0:= + dev-libs/date:= + dev-libs/wayland + gui-libs/gtk-layer-shell + media-video/pipewire:= + x11-libs/gtk+:3[wayland] + x11-libs/libxkbcommon + evdev? ( dev-libs/libevdev ) + jack? ( virtual/jack ) + libinput? ( dev-libs/libinput:= ) + logind? ( + || ( sys-apps/systemd + sys-auth/elogind ) + ) + mpd? ( media-libs/libmpdclient ) + mpris? ( >=media-sound/playerctl-2 ) + network? ( dev-libs/libnl:3 ) + pipewire? ( media-video/wireplumber:0/0.5 ) + pulseaudio? ( media-libs/libpulse ) + sndio? ( media-sound/sndio:= ) + systemd? ( sys-apps/systemd:= ) + tray? ( + dev-libs/libayatana-appindicator + dev-libs/libdbusmenu[gtk3] + ) + udev? ( virtual/libudev:= ) + upower? ( sys-power/upower:= ) + wifi? ( sys-apps/util-linux ) +" +DEPEND="${RDEPEND} + dev-libs/wayland-protocols + test? ( dev-cpp/catch:0 ) +" + +PATCHES=( + "${FILESDIR}"/tray-icons-fix.patch +) + +src_configure() { + local emesonargs=( + -Dman-pages=enabled + -Dcava=disabled + $(meson_feature evdev libevdev) + $(meson_feature jack) + $(meson_feature libinput) + $(meson_feature logind) + $(meson_feature mpd) + $(meson_feature mpris) + $(meson_feature network libnl) + $(meson_feature pulseaudio) + $(meson_feature pipewire wireplumber) + $(meson_feature pipewire) + $(meson_feature sndio) + $(meson_feature systemd) + $(meson_feature test tests) + $(meson_feature tray dbusmenu-gtk) + $(meson_feature udev libudev) + $(meson_feature upower upower_glib) + $(meson_feature wifi rfkill) + $(meson_use experimental) + ) + meson_src_configure +} diff --git a/gui-apps/waybar/waybar-0.11.0.ebuild b/gui-apps/waybar/waybar-0.11.0.ebuild new file mode 100644 index 000000000000..20a16f9595aa --- /dev/null +++ b/gui-apps/waybar/waybar-0.11.0.ebuild @@ -0,0 +1,101 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit meson + +DESCRIPTION="Highly customizable Wayland bar for Sway and Wlroots based compositors" +HOMEPAGE="https://github.com/Alexays/Waybar" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/Alexays/${PN^}.git" +else + SRC_URI="https://github.com/Alexays/${PN^}/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm64" + S="${WORKDIR}/${PN^}-${PV}" +fi + +LICENSE="MIT" +SLOT="0" +IUSE="evdev experimental jack +libinput +logind mpd mpris network pipewire pulseaudio sndio systemd test tray +udev upower wifi" +REQUIRED_USE=" + upower? ( logind ) +" + +RESTRICT="!test? ( test )" + +BDEPEND=" + >=app-text/scdoc-1.9.2 + >=dev-util/gdbus-codegen-2.80.5-r1 + dev-util/wayland-scanner + virtual/pkgconfig +" +RDEPEND=" + dev-cpp/cairomm:0 + dev-cpp/glibmm:2 + dev-cpp/gtkmm:3.0 + dev-libs/glib:2 + dev-libs/jsoncpp:= + dev-libs/libsigc++:2 + >=dev-libs/libfmt-8.1.1:= + >=dev-libs/spdlog-1.10.0:= + dev-libs/date:= + dev-libs/wayland + gui-libs/gtk-layer-shell + media-video/pipewire:= + x11-libs/gtk+:3[wayland] + x11-libs/libxkbcommon + evdev? ( dev-libs/libevdev ) + jack? ( virtual/jack ) + libinput? ( dev-libs/libinput:= ) + logind? ( + || ( sys-apps/systemd + sys-auth/elogind ) + ) + mpd? ( media-libs/libmpdclient ) + mpris? ( >=media-sound/playerctl-2 ) + network? ( dev-libs/libnl:3 ) + pipewire? ( media-video/wireplumber:0/0.5 ) + pulseaudio? ( media-libs/libpulse ) + sndio? ( media-sound/sndio:= ) + systemd? ( sys-apps/systemd:= ) + tray? ( + dev-libs/libayatana-appindicator + dev-libs/libdbusmenu[gtk3] + ) + udev? ( virtual/libudev:= ) + upower? ( sys-power/upower:= ) + wifi? ( sys-apps/util-linux ) +" +DEPEND="${RDEPEND} + dev-libs/wayland-protocols + test? ( dev-cpp/catch:0 ) +" + +src_configure() { + local emesonargs=( + -Dman-pages=enabled + -Dcava=disabled + $(meson_feature evdev libevdev) + $(meson_feature jack) + $(meson_feature libinput) + $(meson_feature logind) + $(meson_feature mpd) + $(meson_feature mpris) + $(meson_feature network libnl) + $(meson_feature pulseaudio) + $(meson_feature pipewire wireplumber) + $(meson_feature pipewire) + $(meson_feature sndio) + $(meson_feature systemd) + $(meson_feature test tests) + $(meson_feature tray dbusmenu-gtk) + $(meson_feature udev libudev) + $(meson_feature upower upower_glib) + $(meson_feature wifi rfkill) + $(meson_use experimental) + ) + meson_src_configure +} diff --git a/gui-apps/waybar/waybar-0.12.0.ebuild b/gui-apps/waybar/waybar-0.12.0.ebuild new file mode 100644 index 000000000000..93a8f6ef1466 --- /dev/null +++ b/gui-apps/waybar/waybar-0.12.0.ebuild @@ -0,0 +1,105 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit meson optfeature + +DESCRIPTION="Highly customizable Wayland bar for Sway and Wlroots based compositors" +HOMEPAGE="https://github.com/Alexays/Waybar" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/Alexays/${PN^}.git" +else + SRC_URI="https://github.com/Alexays/${PN^}/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="amd64 ~arm64" + S="${WORKDIR}/${PN^}-${PV}" +fi + +LICENSE="MIT" +SLOT="0" +IUSE="evdev experimental jack +libinput +logind mpd mpris network pipewire pulseaudio sndio systemd test tray +udev upower wifi" +REQUIRED_USE=" + upower? ( logind ) +" + +RESTRICT="!test? ( test )" + +BDEPEND=" + >=app-text/scdoc-1.9.2 + >=dev-util/gdbus-codegen-2.80.5-r1 + dev-util/wayland-scanner + virtual/pkgconfig +" +RDEPEND=" + dev-cpp/cairomm:0 + dev-cpp/glibmm:2 + dev-cpp/gtkmm:3.0 + dev-libs/glib:2 + dev-libs/jsoncpp:= + dev-libs/libsigc++:2 + >=dev-libs/libfmt-8.1.1:= + >=dev-libs/spdlog-1.10.0:= + dev-libs/date:= + dev-libs/wayland + >=gui-libs/gtk-layer-shell-0.9.0 + media-video/pipewire:= + x11-libs/gtk+:3[wayland] + x11-libs/libxkbcommon + evdev? ( dev-libs/libevdev ) + jack? ( virtual/jack ) + libinput? ( dev-libs/libinput:= ) + logind? ( + || ( sys-apps/systemd + sys-auth/elogind ) + ) + mpd? ( media-libs/libmpdclient ) + mpris? ( >=media-sound/playerctl-2 ) + network? ( dev-libs/libnl:3 ) + pipewire? ( media-video/wireplumber:0/0.5 ) + pulseaudio? ( media-libs/libpulse ) + sndio? ( media-sound/sndio:= ) + systemd? ( sys-apps/systemd:= ) + tray? ( + dev-libs/libayatana-appindicator + dev-libs/libdbusmenu[gtk3] + ) + udev? ( virtual/libudev:= ) + upower? ( sys-power/upower:= ) + wifi? ( sys-apps/util-linux ) +" +DEPEND="${RDEPEND} + dev-libs/wayland-protocols + test? ( dev-cpp/catch:0 ) +" + +src_configure() { + local emesonargs=( + -Dman-pages=enabled + -Dcava=disabled + $(meson_feature evdev libevdev) + $(meson_feature jack) + $(meson_feature libinput) + $(meson_feature logind) + $(meson_feature mpd) + $(meson_feature mpris) + $(meson_feature network libnl) + $(meson_feature pulseaudio) + $(meson_feature pipewire wireplumber) + $(meson_feature pipewire) + $(meson_feature sndio) + $(meson_feature systemd) + $(meson_feature test tests) + $(meson_feature tray dbusmenu-gtk) + $(meson_feature udev libudev) + $(meson_feature upower upower_glib) + $(meson_feature wifi rfkill) + $(meson_use experimental) + ) + meson_src_configure +} + +pkg_postinst() { + optfeature "default icons support" "media-fonts/fontawesome" +} diff --git a/gui-apps/waybar/waybar-0.14.0.ebuild b/gui-apps/waybar/waybar-0.14.0.ebuild new file mode 100644 index 000000000000..494b727a9d27 --- /dev/null +++ b/gui-apps/waybar/waybar-0.14.0.ebuild @@ -0,0 +1,121 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit meson optfeature toolchain-funcs + +DESCRIPTION="Highly customizable Wayland bar for Sway and Wlroots based compositors" +HOMEPAGE="https://github.com/Alexays/Waybar" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/Alexays/${PN^}.git" +else + SRC_URI="https://github.com/Alexays/${PN^}/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="amd64 ~arm64" + S="${WORKDIR}/${PN^}-${PV}" +fi + +LICENSE="MIT" +SLOT="0" +IUSE="backlight evdev experimental gps jack +libinput +logind mpd mpris network niri pipewire pulseaudio sndio systemd test tray +udev upower wifi" +REQUIRED_USE=" + upower? ( logind ) + backlight? ( udev logind ) +" + +RESTRICT="!test? ( test )" + +BDEPEND=" + >=app-text/scdoc-1.9.2 + >=dev-util/gdbus-codegen-2.80.5-r1 + dev-util/wayland-scanner + virtual/pkgconfig +" +RDEPEND=" + dev-cpp/cairomm:0 + dev-cpp/glibmm:2 + dev-cpp/gtkmm:3.0 + dev-libs/glib:2 + dev-libs/jsoncpp:= + dev-libs/libsigc++:2 + >=dev-libs/libfmt-8.1.1:= + >=dev-libs/spdlog-1.10.0:= + dev-libs/date:= + dev-libs/wayland + >=gui-libs/gtk-layer-shell-0.9.0 + media-video/pipewire:= + x11-libs/gtk+:3[wayland] + x11-libs/libxkbcommon + evdev? ( dev-libs/libevdev ) + gps? ( sci-geosciences/gpsd:= ) + jack? ( virtual/jack ) + libinput? ( dev-libs/libinput:= ) + logind? ( + systemd? ( sys-apps/systemd ) + !systemd? ( sys-auth/elogind ) + ) + mpd? ( media-libs/libmpdclient ) + mpris? ( >=media-sound/playerctl-2 ) + network? ( dev-libs/libnl:3 ) + pipewire? ( media-video/wireplumber:0/0.5 ) + pulseaudio? ( media-libs/libpulse ) + sndio? ( media-sound/sndio:= ) + systemd? ( sys-apps/systemd:= ) + tray? ( + dev-libs/libayatana-appindicator + dev-libs/libdbusmenu[gtk3] + ) + udev? ( virtual/libudev:= ) + upower? ( sys-power/upower:= ) + wifi? ( sys-apps/util-linux ) +" +DEPEND="${RDEPEND} + dev-libs/wayland-protocols + test? ( dev-cpp/catch:0 ) +" +PATCHES=( + "${FILESDIR}"/meson-fix-build.patch +) + +src_configure() { + local cxx_stdlib=$(tc-get-cxx-stdlib) + einfo "C++ standard library: ${cxx_stdlib:-unknown}" + local libcxx=false + if [[ ${cxx_stdlib} == libc++ ]]; then + libcxx=true + fi + + local emesonargs=( + -Dlibcxx=${libcxx} + -Dman-pages=enabled + -Dcava=disabled # depends on LukashonakV/cava fork, but media-sound/cava is karlstav/cava + $(meson_feature evdev libevdev) + $(meson_feature gps) + $(meson_feature jack) + $(meson_feature libinput) + $(meson_feature logind) + $(meson_feature mpd) + $(meson_feature mpris) + $(meson_feature network libnl) + $(meson_feature pulseaudio) + $(meson_feature pipewire wireplumber) + $(meson_feature pipewire) + $(meson_feature sndio) + $(meson_feature systemd) + $(meson_feature test tests) + $(meson_feature tray dbusmenu-gtk) + $(meson_feature udev libudev) + $(meson_feature upower upower_glib) + $(meson_feature wifi rfkill) + $(meson_use backlight login-proxy) + $(meson_use experimental) + $(meson_use niri) # communicates by socket with gui-wm/niri::guru + ) + meson_src_configure +} + +pkg_postinst() { + optfeature "default icons support" "media-fonts/fontawesome" +} |
