%global forgeurl https://github.com/Alexays/Waybar/ %global commit 323e66f51644d0562be54af3c21f368a4d61d321 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %forgemeta Name: waybar Version: 0.15.0 Release: 10.%(date +%%Y%%m%%d%%H%%M).git%{shortcommit}%{?dist} Summary: Highly customizable Wayland bar for Sway and Wlroots based compositors # Source files/overall project licensed as MIT, but # - BSL-1.0 # * include/util/clara.hpp # - HPND-sell-variant # * protocol/ext-workspace-unstable-v1.xml # * protocol/wlr-foreign-toplevel-management-unstable-v1.xml # * protocol/wlr-layer-shell-unstable-v1.xml # - ISC # * protocol/river-control-unstable-v1.xml # * protocol/river-status-unstable-v1.xml # * src/util/rfkill.cpp License: MIT AND BSL-1.0 AND ISC URL: %{forgeurl} Source: %{forgesource} BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: meson >= 0.59.0 BuildRequires: scdoc BuildRequires: systemd-rpm-macros BuildRequires: pkgconfig(catch2) BuildRequires: pkgconfig(dbusmenu-gtk3-0.4) BuildRequires: pkgconfig(fmt) >= 8.1.1 BuildRequires: pkgconfig(gdk-pixbuf-2.0) BuildRequires: pkgconfig(gio-unix-2.0) BuildRequires: pkgconfig(gtk-layer-shell-0) >= 0.9.0 BuildRequires: pkgconfig(gtkmm-3.0) BuildRequires: pkgconfig(jack) BuildRequires: pkgconfig(jsoncpp) BuildRequires: pkgconfig(libevdev) BuildRequires: pkgconfig(libgps) BuildRequires: pkgconfig(libinput) BuildRequires: pkgconfig(libmpdclient) BuildRequires: pkgconfig(libnl-3.0) BuildRequires: pkgconfig(libnl-genl-3.0) BuildRequires: pkgconfig(libpipewire-0.3) BuildRequires: pkgconfig(libpulse) BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(playerctl) BuildRequires: pkgconfig(sigc++-2.0) BuildRequires: pkgconfig(spdlog) >= 1.10.0 BuildRequires: pkgconfig(systemd) BuildRequires: pkgconfig(upower-glib) BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-cursor) BuildRequires: pkgconfig(wayland-protocols) BuildRequires: pkgconfig(wireplumber-0.5) BuildRequires: pkgconfig(xkbregistry) BuildRequires: pkgconfig(mm-glib) Enhances: sway Recommends: font(fontawesome6free) Recommends: font(fontawesome6brands) %description %{summary}. %prep %forgeautosetup patch -p1 <<'EOF' diff --git a/src/modules/niri/workspaces.cpp b/src/modules/niri/workspaces.cpp --- a/src/modules/niri/workspaces.cpp +++ b/src/modules/niri/workspaces.cpp @@ -334,6 +334,18 @@ bool Workspaces::handleScroll(GdkEventScroll* e) { return true; } + const char* up = "FocusWorkspaceUp"; + const char* down = "FocusWorkspaceDown"; + + const auto& t = config_["bar-scroll-target"]; + const std::string target = t.isString() ? t.asString() : "workspaces"; + if (target == "columns") { + up = "FocusColumnLeft"; + down = "FocusColumnRight"; + } else if (target != "workspaces") { + spdlog::warn("Workspaces: unknown bar-scroll-target '{}'", target); + } + try { Json::Value request(Json::objectValue); auto& action = (request["Action"] = Json::Value(Json::objectValue)); @@ -341,9 +353,9 @@ bool Workspaces::handleScroll(GdkEventScroll* e) { std::string action_name; if (dir == SCROLL_DIR::DOWN || dir == SCROLL_DIR::RIGHT) { - action_name = "FocusWorkspaceDown"; + action_name = down; } else if (dir == SCROLL_DIR::UP || dir == SCROLL_DIR::LEFT) { - action_name = "FocusWorkspaceUp"; + action_name = up; } else { return true; } EOF %build %meson -Dcava=disabled -Dsndio=disabled %meson_build %install %meson_install %check %meson_test %post %systemd_user_post %{name}.service %preun %systemd_user_preun %{name}.service %files %license LICENSE %doc README.md %dir %{_sysconfdir}/xdg/%{name} %config(noreplace) %{_sysconfdir}/xdg/%{name}/config.jsonc %config(noreplace) %{_sysconfdir}/xdg/%{name}/style.css %{_bindir}/%{name} %{_mandir}/man5/%{name}* %{_userunitdir}/%{name}.service %changelog %autochangelog