Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package hyprland-plugins for 
openSUSE:Factory checked in at 2026-04-17 21:06:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hyprland-plugins (Old)
 and      /work/SRC/openSUSE:Factory/.hyprland-plugins.new.11940 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "hyprland-plugins"

Fri Apr 17 21:06:56 2026 rev:8 rq:1347757 version:0.53.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/hyprland-plugins/hyprland-plugins.changes        
2026-01-06 17:46:45.935010527 +0100
+++ 
/work/SRC/openSUSE:Factory/.hyprland-plugins.new.11940/hyprland-plugins.changes 
    2026-04-17 21:06:57.720506703 +0200
@@ -1,0 +2,11 @@
+Fri Apr 17 15:23:54 UTC 2026 - Florian "sp1rit" <[email protected]>
+
+- Introduce necessary patches to target hyprland 0.54.0, as upstream
+  did not make a release yet.
+  + Added all-chase-hyprland.patch
+  + Added expo-Chase-new-gesture-param-disableInhibit-581.patch
+  + Added Fix-hyprtrails-compilation-errors.patch
+- Removed hyprland-plugin-hyprscrolling as functionality was
+  introduced upstream.
+
+-------------------------------------------------------------------

New:
----
  Fix-hyprtrails-compilation-errors.patch
  all-chase-hyprland.patch
  expo-Chase-new-gesture-param-disableInhibit-581.patch

----------(New B)----------
  New:  + Added expo-Chase-new-gesture-param-disableInhibit-581.patch
  + Added Fix-hyprtrails-compilation-errors.patch
- Removed hyprland-plugin-hyprscrolling as functionality was
  New:  did not make a release yet.
  + Added all-chase-hyprland.patch
  + Added expo-Chase-new-gesture-param-disableInhibit-581.patch
  New:  + Added all-chase-hyprland.patch
  + Added expo-Chase-new-gesture-param-disableInhibit-581.patch
  + Added Fix-hyprtrails-compilation-errors.patch
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ hyprland-plugins.spec ++++++
--- /var/tmp/diff_new_pack.biwcrL/_old  2026-04-17 21:06:58.872554149 +0200
+++ /var/tmp/diff_new_pack.biwcrL/_new  2026-04-17 21:06:58.872554149 +0200
@@ -15,9 +15,11 @@
 # Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
-%define hypr_tgt 0.53.0
+%define hypr_tgt 0.54.0
 %define pkg_version 0.53.0
 
+%define debian_patch_rev b772e7e4d8b8f764d2b359dc4dd299f50b2b9e50
+
 Name:           hyprland-plugins
 Version:        %{pkg_version}
 Release:        0
@@ -25,6 +27,9 @@
 License:        BSD-3-Clause
 URL:            https://github.com/hyprwm/hyprland-plugins
 Source0:        
https://github.com/hyprwm/hyprland-plugins/archive/refs/tags/v%{pkg_version}.tar.gz#/%{name}-%{version}.tar.gz
+Patch10:        
https://salsa.debian.org/hyprland-team/hyprland-plugins/-/raw/%{debian_patch_rev}/debian/patches/all-chase-hyprland.patch
+Patch11:        
https://salsa.debian.org/hyprland-team/hyprland-plugins/-/raw/%{debian_patch_rev}/debian/patches/Fix-hyprtrails-compilation-errors.patch
+Patch12:        
https://salsa.debian.org/hyprland-team/hyprland-plugins/-/raw/%{debian_patch_rev}/debian/patches/expo-Chase-new-gesture-param-disableInhibit-581.patch
 BuildRequires:  gcc-c++
 BuildRequires:  pkgconfig
 BuildRequires:  pkgconfig(hyprland) >= %{hypr_tgt}
@@ -37,7 +42,6 @@
        ['hyprbars'] = 'This plugin adds title bars to windows',
        ['hyprexpo'] = 'This plugin adds an expo-like workspace overview',
        ['hyprfocus'] = 'This plugin adds flashfocus for hyprland',
-       ['hyprscrolling'] = 'This plugin adds a scrolling layout to hyprland',
        ['hyprtrails'] = 'This plugin adds smooth trails behind moving windows',
        ['hyprwinwrap'] = 'This plugin is a clone of xwinwrap, allows you to 
put any app as a\nwallpaper',
        ['xtra-dispatchers'] = 'This plugin adds some new dispatchers',

++++++ Fix-hyprtrails-compilation-errors.patch ++++++
From: Chow Loong Jin <[email protected]>
Date: Thu, 19 Mar 2026 16:26:16 +0800
Subject: Fix hyprtrails compilation errors

Partially fixes: #629
Forwarded: yes
Bug: https://github.com/hyprwm/hyprland-plugins/pull/632
---
 hyprtrails/globals.hpp |  9 ++++++++-
 hyprtrails/main.cpp    | 19 +++++--------------
 hyprtrails/trail.cpp   | 15 +++++++--------
 hyprtrails/trail.hpp   |  3 ++-
 4 files changed, 22 insertions(+), 24 deletions(-)

diff --git a/hyprtrails/globals.hpp b/hyprtrails/globals.hpp
index 5abe391..9555c1b 100644
--- a/hyprtrails/globals.hpp
+++ b/hyprtrails/globals.hpp
@@ -1,11 +1,18 @@
 #pragma once
 
 #include <hyprland/src/plugins/PluginAPI.hpp>
+#include <src/event/EventBus.hpp>
+#include <src/render/Shader.hpp>
 
 inline HANDLE PHANDLE = nullptr;
 
 struct SGlobalState {
-    SShader          trailShader;
+    CShader          trailShader;
+
+    struct {
+        Event::CEventBus::Event<> trailTick;
+    } events;
+
     wl_event_source* tick = nullptr;
 };
 
diff --git a/hyprtrails/main.cpp b/hyprtrails/main.cpp
index 76201a8..46b0e66 100644
--- a/hyprtrails/main.cpp
+++ b/hyprtrails/main.cpp
@@ -8,7 +8,7 @@
 #include <hyprland/src/config/ConfigManager.hpp>
 #include <hyprland/src/render/shaders/Shaders.hpp>
 #include <hyprland/src/render/Renderer.hpp>
-#include <hyprland/src/managers/HookSystemManager.hpp>
+#include <hyprland/src/event/EventBus.hpp>
 
 #include "globals.hpp"
 #include "shaders.hpp"
@@ -19,10 +19,7 @@ APICALL EXPORT std::string PLUGIN_API_VERSION() {
     return HYPRLAND_API_VERSION;
 }
 
-void onNewWindow(void* self, std::any data) {
-    // data is guaranteed
-    const auto PWINDOW = std::any_cast<PHLWINDOW>(data);
-
+void onNewWindow(PHLWINDOW PWINDOW) {
     HyprlandAPI::addWindowDecoration(PHANDLE, PWINDOW, 
makeUnique<CTrail>(PWINDOW));
 }
 
@@ -74,7 +71,7 @@ GLuint CreateProgram(const std::string& vert, const 
std::string& frag) {
 }
 
 int onTick(void* data) {
-    EMIT_HOOK_EVENT("trailTick", nullptr);
+    g_pGlobalState->events.trailTick.emit();
 
     const int TIMEOUT = g_pHyprRenderer->m_mostHzMonitor ? 1000.0 / 
g_pHyprRenderer->m_mostHzMonitor->m_refreshRate : 16;
     wl_event_source_timer_update(g_pGlobalState->tick, TIMEOUT);
@@ -85,13 +82,7 @@ int onTick(void* data) {
 void initGlobal() {
     g_pHyprRenderer->makeEGLCurrent();
 
-    GLuint prog                                                     = 
CreateProgram(QUADTRAIL, FRAGTRAIL);
-    g_pGlobalState->trailShader.program                             = prog;
-    g_pGlobalState->trailShader.uniformLocations[SHADER_PROJ]       = 
glGetUniformLocation(prog, "proj");
-    g_pGlobalState->trailShader.uniformLocations[SHADER_TEX]        = 
glGetUniformLocation(prog, "tex");
-    g_pGlobalState->trailShader.uniformLocations[SHADER_COLOR]      = 
glGetUniformLocation(prog, "color");
-    g_pGlobalState->trailShader.uniformLocations[SHADER_POS_ATTRIB] = 
glGetAttribLocation(prog, "pos");
-    g_pGlobalState->trailShader.uniformLocations[SHADER_GRADIENT]   = 
glGetUniformLocation(prog, "snapshots");
+    g_pGlobalState->trailShader.createProgram(QUADTRAIL, FRAGTRAIL);
 
     g_pGlobalState->tick = 
wl_event_loop_add_timer(g_pCompositor->m_wlEventLoop, &onTick, nullptr);
     wl_event_source_timer_update(g_pGlobalState->tick, 1);
@@ -115,7 +106,7 @@ APICALL EXPORT PLUGIN_DESCRIPTION_INFO PLUGIN_INIT(HANDLE 
handle) {
     HyprlandAPI::addConfigValue(PHANDLE, "plugin:hyprtrails:history_step", 
Hyprlang::INT{2});
     HyprlandAPI::addConfigValue(PHANDLE, "plugin:hyprtrails:color", 
Hyprlang::INT{*configStringToInt("rgba(ffaa00ff)")});
 
-    static auto P = HyprlandAPI::registerCallbackDynamic(PHANDLE, 
"openWindow", [&](void* self, SCallbackInfo& info, std::any data) { 
onNewWindow(self, data); });
+    static auto P = Event::bus()->m_events.window.open.listen([&](PHLWINDOW 
PWINDOW) { onNewWindow(PWINDOW); });
 
     g_pGlobalState = makeUnique<SGlobalState>();
     initGlobal();
diff --git a/hyprtrails/trail.cpp b/hyprtrails/trail.cpp
index 8598449..f9bd3d0 100644
--- a/hyprtrails/trail.cpp
+++ b/hyprtrails/trail.cpp
@@ -36,12 +36,11 @@ CTrail::CTrail(PHLWINDOW pWindow) : 
IHyprWindowDecoration(pWindow), m_pWindow(pW
     m_lastWindowPos  = pWindow->m_realPosition->value();
     m_lastWindowSize = pWindow->m_realSize->value();
 
-    pTickCb = HyprlandAPI::registerCallbackDynamic(PHANDLE, "trailTick", 
[this](void* self, SCallbackInfo& info, std::any data) { this->onTick(); });
+    pTickCb = g_pGlobalState->events.trailTick.listen([this]() { 
this->onTick(); });
 }
 
 CTrail::~CTrail() {
     damageEntire();
-    HyprlandAPI::unregisterCallback(PHANDLE, pTickCb);
 }
 
 SDecorationPositioningInfo CTrail::getPositioningInfo() {
@@ -134,7 +133,7 @@ void CTrail::renderPass(PHLMONITOR pMonitor, const float& 
a) {
 
     g_pHyprOpenGL->blend(true);
 
-    glUseProgram(g_pGlobalState->trailShader.program);
+    glUseProgram(g_pGlobalState->trailShader.program());
 
     glMatrix.transpose();
     g_pGlobalState->trailShader.setUniformMatrix3fv(SHADER_PROJ, 1, GL_FALSE, 
glMatrix.getMatrix());
@@ -246,16 +245,16 @@ void CTrail::renderPass(PHLMONITOR pMonitor, const float& 
a) {
                             sc<float>((PWINDOW->m_realPosition->value().y - 
pMonitor->m_position.y) / pMonitor->m_size.y),
                             sc<float>((PWINDOW->m_realPosition->value().x + 
PWINDOW->m_realSize->value().x) / pMonitor->m_size.x),
                             sc<float>((PWINDOW->m_realPosition->value().y + 
PWINDOW->m_realSize->value().y) / pMonitor->m_size.y)};
-    glUniform4f(g_pGlobalState->trailShader.uniformLocations[SHADER_GRADIENT], 
thisboxopengl.x, thisboxopengl.y, thisboxopengl.w, thisboxopengl.h);
-    glUniform4f(g_pGlobalState->trailShader.uniformLocations[SHADER_COLOR], 
COLOR.r, COLOR.g, COLOR.b, COLOR.a);
+    
glUniform4f(g_pGlobalState->trailShader.getUniformLocation(SHADER_GRADIENT), 
thisboxopengl.x, thisboxopengl.y, thisboxopengl.w, thisboxopengl.h);
+    glUniform4f(g_pGlobalState->trailShader.getUniformLocation(SHADER_COLOR), 
COLOR.r, COLOR.g, COLOR.b, COLOR.a);
 
     CBox transformedBox = monbox;
     
transformedBox.transform(Math::wlTransformToHyprutils(Math::invertTransform(g_pHyprOpenGL->m_renderData.pMonitor->m_transform)),
 g_pHyprOpenGL->m_renderData.pMonitor->m_transformedSize.x,
                              
g_pHyprOpenGL->m_renderData.pMonitor->m_transformedSize.y);
 
-    
glVertexAttribPointer(g_pGlobalState->trailShader.uniformLocations[SHADER_POS_ATTRIB],
 2, GL_FLOAT, GL_FALSE, 0, (float*)points.data());
+    
glVertexAttribPointer(g_pGlobalState->trailShader.getUniformLocation(SHADER_POS_ATTRIB),
 2, GL_FLOAT, GL_FALSE, 0, (float*)points.data());
 
-    
glEnableVertexAttribArray(g_pGlobalState->trailShader.uniformLocations[SHADER_POS_ATTRIB]);
+    
glEnableVertexAttribArray(g_pGlobalState->trailShader.getUniformLocation(SHADER_POS_ATTRIB));
 
     if (g_pHyprOpenGL->m_renderData.clipBox.width != 0 && 
g_pHyprOpenGL->m_renderData.clipBox.height != 0) {
         CRegion damageClip{g_pHyprOpenGL->m_renderData.clipBox.x, 
g_pHyprOpenGL->m_renderData.clipBox.y, 
g_pHyprOpenGL->m_renderData.clipBox.width,
@@ -275,7 +274,7 @@ void CTrail::renderPass(PHLMONITOR pMonitor, const float& 
a) {
         }
     }
 
-    
glDisableVertexAttribArray(g_pGlobalState->trailShader.uniformLocations[SHADER_POS_ATTRIB]);
+    
glDisableVertexAttribArray(g_pGlobalState->trailShader.getUniformLocation(SHADER_POS_ATTRIB));
 
     glClearStencil(0);
     glClear(GL_STENCIL_BUFFER_BIT);
diff --git a/hyprtrails/trail.hpp b/hyprtrails/trail.hpp
index 956775f..770dbc2 100644
--- a/hyprtrails/trail.hpp
+++ b/hyprtrails/trail.hpp
@@ -1,5 +1,6 @@
 #pragma once
 
+#include <hyprutils/signal/Listener.hpp>
 #define WLR_USE_UNSTABLE
 
 #include <deque>
@@ -46,7 +47,7 @@ class CTrail : public IHyprWindowDecoration {
     virtual void                       damageEntire();
 
   private:
-    SP<HOOK_CALLBACK_FN>                                              pTickCb;
+    Hyprutils::Signal::CHyprSignalListener                            pTickCb;
     void                                                              onTick();
     void                                                              
renderPass(PHLMONITOR pMonitor, const float& a);
 

++++++ all-chase-hyprland.patch ++++++
++++ 643 lines (skipped)

++++++ expo-Chase-new-gesture-param-disableInhibit-581.patch ++++++
From: "Mathis H." <[email protected]>
Date: Thu, 1 Jan 2026 09:58:26 -0500
Subject: expo: Chase new gesture param disableInhibit (#581)

* chore: update flake.lock

* fix: handle disableInhibit param for gesture

* style: apply clang-format

Origin: commit:c2fe049150f1110865553b585e8cdc3e9780020b
Forwarded: yes
Applied-Upstream: commit:c2fe049150f1110865553b585e8cdc3e9780020b
---
 flake.lock        | 192 +++++++++++++++++++++++++++++++++++-------------------
 hyprexpo/main.cpp |  24 +++++--
 2 files changed, 143 insertions(+), 73 deletions(-)

diff --git a/flake.lock b/flake.lock
index b4ab05e..c291026 100644
--- a/flake.lock
+++ b/flake.lock
@@ -20,11 +20,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1760101617,
-        "narHash": "sha256-8jf/3ZCi+B7zYpIyV04+3wm72BD7Z801IlOzsOACR7I=",
+        "lastModified": 1765900596,
+        "narHash": "sha256-+hn8v9jkkLP9m+o0Nm5SiEq10W0iWDSotH2XfjU45fA=",
         "owner": "hyprwm",
         "repo": "aquamarine",
-        "rev": "1826a9923881320306231b1c2090379ebf9fa4f8",
+        "rev": "d83c97f8f5c0aae553c1489c7d9eff3eadcadace",
         "type": "github"
       },
       "original": {
@@ -36,11 +36,11 @@
     "flake-compat": {
       "flake": false,
       "locked": {
-        "lastModified": 1747046372,
-        "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
+        "lastModified": 1761588595,
+        "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
         "owner": "edolstra",
         "repo": "flake-compat",
-        "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
+        "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
         "type": "github"
       },
       "original": {
@@ -116,11 +116,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1760445448,
-        "narHash": "sha256-fXGjL6dw31FPFRrmIemzGiNSlfvEJTJNsmadZi+qNhI=",
+        "lastModified": 1763733840,
+        "narHash": "sha256-JnET78yl5RvpGuDQy3rCycOCkiKoLr5DN1fPhRNNMco=",
         "owner": "hyprwm",
         "repo": "hyprgraphics",
-        "rev": "50fb9f069219f338a11cf0bcccb9e58357d67757",
+        "rev": "8f1bec691b2d198c60cccabca7a94add2df4ed1a",
         "type": "github"
       },
       "original": {
@@ -134,22 +134,23 @@
         "aquamarine": "aquamarine",
         "hyprcursor": "hyprcursor",
         "hyprgraphics": "hyprgraphics",
+        "hyprland-guiutils": "hyprland-guiutils",
         "hyprland-protocols": "hyprland-protocols",
-        "hyprland-qtutils": "hyprland-qtutils",
         "hyprlang": "hyprlang",
         "hyprutils": "hyprutils",
         "hyprwayland-scanner": "hyprwayland-scanner",
+        "hyprwire": "hyprwire",
         "nixpkgs": "nixpkgs",
         "pre-commit-hooks": "pre-commit-hooks",
         "systems": "systems",
         "xdph": "xdph"
       },
       "locked": {
-        "lastModified": 1761869718,
-        "narHash": "sha256-jLfwwlPGpnGRAtVDyoGj9FgH2D9hWwyEu0yHkflG2EI=",
+        "lastModified": 1767201430,
+        "narHash": "sha256-2FF66EaIbsc7CL1jKHbRFslSePDq40fzlTTbUlm5v3k=",
         "owner": "hyprwm",
         "repo": "Hyprland",
-        "rev": "8e9add2afda58d233a75e4c5ce8503b24fa59ceb",
+        "rev": "48a024e0322bbd7c4c88126498ec478444ec4cb2",
         "type": "github"
       },
       "original": {
@@ -158,8 +159,29 @@
         "type": "github"
       }
     },
-    "hyprland-protocols": {
+    "hyprland-guiutils": {
       "inputs": {
+        "aquamarine": [
+          "hyprland",
+          "aquamarine"
+        ],
+        "hyprgraphics": [
+          "hyprland",
+          "hyprgraphics"
+        ],
+        "hyprlang": [
+          "hyprland",
+          "hyprlang"
+        ],
+        "hyprtoolkit": "hyprtoolkit",
+        "hyprutils": [
+          "hyprland",
+          "hyprutils"
+        ],
+        "hyprwayland-scanner": [
+          "hyprland",
+          "hyprwayland-scanner"
+        ],
         "nixpkgs": [
           "hyprland",
           "nixpkgs"
@@ -170,62 +192,48 @@
         ]
       },
       "locked": {
-        "lastModified": 1759610243,
-        "narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=",
+        "lastModified": 1765643131,
+        "narHash": "sha256-CCGohW5EBIRy4B7vTyBMqPgsNcaNenVad/wszfddET0=",
         "owner": "hyprwm",
-        "repo": "hyprland-protocols",
-        "rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622",
+        "repo": "hyprland-guiutils",
+        "rev": "e50ae912813bdfa8372d62daf454f48d6df02297",
         "type": "github"
       },
       "original": {
         "owner": "hyprwm",
-        "repo": "hyprland-protocols",
+        "repo": "hyprland-guiutils",
         "type": "github"
       }
     },
-    "hyprland-qt-support": {
+    "hyprland-protocols": {
       "inputs": {
-        "hyprlang": [
-          "hyprland",
-          "hyprland-qtutils",
-          "hyprlang"
-        ],
         "nixpkgs": [
           "hyprland",
-          "hyprland-qtutils",
           "nixpkgs"
         ],
         "systems": [
           "hyprland",
-          "hyprland-qtutils",
           "systems"
         ]
       },
       "locked": {
-        "lastModified": 1749154592,
-        "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=",
+        "lastModified": 1765214753,
+        "narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=",
         "owner": "hyprwm",
-        "repo": "hyprland-qt-support",
-        "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074",
+        "repo": "hyprland-protocols",
+        "rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab",
         "type": "github"
       },
       "original": {
         "owner": "hyprwm",
-        "repo": "hyprland-qt-support",
+        "repo": "hyprland-protocols",
         "type": "github"
       }
     },
-    "hyprland-qtutils": {
+    "hyprlang": {
       "inputs": {
-        "hyprland-qt-support": "hyprland-qt-support",
-        "hyprlang": [
-          "hyprland",
-          "hyprlang"
-        ],
         "hyprutils": [
           "hyprland",
-          "hyprland-qtutils",
-          "hyprlang",
           "hyprutils"
         ],
         "nixpkgs": [
@@ -238,45 +246,68 @@
         ]
       },
       "locked": {
-        "lastModified": 1759080228,
-        "narHash": "sha256-RgDoAja0T1hnF0pTc56xPfLfFOO8Utol2iITwYbUhTk=",
+        "lastModified": 1764612430,
+        "narHash": "sha256-54ltTSbI6W+qYGMchAgCR6QnC1kOdKXN6X6pJhOWxFg=",
         "owner": "hyprwm",
-        "repo": "hyprland-qtutils",
-        "rev": "629b15c19fa4082e4ce6be09fdb89e8c3312aed7",
+        "repo": "hyprlang",
+        "rev": "0d00dc118981531aa731150b6ea551ef037acddd",
         "type": "github"
       },
       "original": {
         "owner": "hyprwm",
-        "repo": "hyprland-qtutils",
+        "repo": "hyprlang",
         "type": "github"
       }
     },
-    "hyprlang": {
+    "hyprtoolkit": {
       "inputs": {
+        "aquamarine": [
+          "hyprland",
+          "hyprland-guiutils",
+          "aquamarine"
+        ],
+        "hyprgraphics": [
+          "hyprland",
+          "hyprland-guiutils",
+          "hyprgraphics"
+        ],
+        "hyprlang": [
+          "hyprland",
+          "hyprland-guiutils",
+          "hyprlang"
+        ],
         "hyprutils": [
           "hyprland",
+          "hyprland-guiutils",
           "hyprutils"
         ],
+        "hyprwayland-scanner": [
+          "hyprland",
+          "hyprland-guiutils",
+          "hyprwayland-scanner"
+        ],
         "nixpkgs": [
           "hyprland",
+          "hyprland-guiutils",
           "nixpkgs"
         ],
         "systems": [
           "hyprland",
+          "hyprland-guiutils",
           "systems"
         ]
       },
       "locked": {
-        "lastModified": 1758927902,
-        "narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=",
+        "lastModified": 1764592794,
+        "narHash": "sha256-7CcO+wbTJ1L1NBQHierHzheQGPWwkIQug/w+fhTAVuU=",
         "owner": "hyprwm",
-        "repo": "hyprlang",
-        "rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da",
+        "repo": "hyprtoolkit",
+        "rev": "5cfe0743f0e608e1462972303778d8a0859ee63e",
         "type": "github"
       },
       "original": {
         "owner": "hyprwm",
-        "repo": "hyprlang",
+        "repo": "hyprtoolkit",
         "type": "github"
       }
     },
@@ -292,11 +323,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1759619523,
-        "narHash": "sha256-r1ed7AR2ZEb2U8gy321/Xcp1ho2tzn+gG1te/Wxsj1A=",
+        "lastModified": 1766160771,
+        "narHash": "sha256-roINUGikWRqqgKrD4iotKbGj3ZKJl3hjMz5l/SyKrHw=",
         "owner": "hyprwm",
         "repo": "hyprutils",
-        "rev": "3df7bde01efb3a3e8e678d1155f2aa3f19e177ef",
+        "rev": "5ac060bfcf2f12b3a6381156ebbc13826a05b09f",
         "type": "github"
       },
       "original": {
@@ -317,11 +348,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1755184602,
-        "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=",
+        "lastModified": 1763640274,
+        "narHash": "sha256-Uan1Nl9i4TF/kyFoHnTq1bd/rsWh4GAK/9/jDqLbY5A=",
         "owner": "hyprwm",
         "repo": "hyprwayland-scanner",
-        "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d",
+        "rev": "f6cf414ca0e16a4d30198fd670ec86df3c89f671",
         "type": "github"
       },
       "original": {
@@ -330,13 +361,42 @@
         "type": "github"
       }
     },
+    "hyprwire": {
+      "inputs": {
+        "hyprutils": [
+          "hyprland",
+          "hyprutils"
+        ],
+        "nixpkgs": [
+          "hyprland",
+          "nixpkgs"
+        ],
+        "systems": [
+          "hyprland",
+          "systems"
+        ]
+      },
+      "locked": {
+        "lastModified": 1766253200,
+        "narHash": "sha256-26qPwrd3od+xoYVywSB7hC2cz9ivN46VPLlrsXyGxvE=",
+        "owner": "hyprwm",
+        "repo": "hyprwire",
+        "rev": "1079777525b30a947c8d657fac158e00ae85de9d",
+        "type": "github"
+      },
+      "original": {
+        "owner": "hyprwm",
+        "repo": "hyprwire",
+        "type": "github"
+      }
+    },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1761114652,
-        "narHash": "sha256-f/QCJM/YhrV/lavyCVz8iU3rlZun6d+dAiC3H+CDle4=",
+        "lastModified": 1766070988,
+        "narHash": "sha256-G/WVghka6c4bAzMhTwT2vjLccg/awmHkdKSd2JrycLc=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "01f116e4df6a15f4ccdffb1bcd41096869fb385c",
+        "rev": "c6245e83d836d0433170a16eb185cefe0572f8b8",
         "type": "github"
       },
       "original": {
@@ -356,11 +416,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1760663237,
-        "narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=",
+        "lastModified": 1765911976,
+        "narHash": "sha256-t3T/xm8zstHRLx+pIHxVpQTiySbKqcQbK+r+01XVKc0=",
         "owner": "cachix",
         "repo": "git-hooks.nix",
-        "rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37",
+        "rev": "b68b780b69702a090c8bb1b973bab13756cc7a27",
         "type": "github"
       },
       "original": {
@@ -425,11 +485,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1760713634,
-        "narHash": "sha256-5HXelmz2x/uO26lvW7MudnadbAfoBnve4tRBiDVLtOM=",
+        "lastModified": 1761431178,
+        "narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=",
         "owner": "hyprwm",
         "repo": "xdg-desktop-portal-hyprland",
-        "rev": "753bbbdf6a052994da94062e5b753288cef28dfb",
+        "rev": "4b8801228ff958d028f588f0c2b911dbf32297f9",
         "type": "github"
       },
       "original": {
diff --git a/hyprexpo/main.cpp b/hyprexpo/main.cpp
index 442976f..1f74f38 100644
--- a/hyprexpo/main.cpp
+++ b/hyprexpo/main.cpp
@@ -34,7 +34,9 @@ APICALL EXPORT std::string PLUGIN_API_VERSION() {
     return HYPRLAND_API_VERSION;
 }
 
-static bool renderingOverview = false;
+static bool       renderingOverview = false;
+
+const std::string KEYWORD_EXPO_GESTURE = "hyprexpo-gesture";
 
 //
 static void hkRenderWorkspace(void* thisptr, PHLMONITOR pMonitor, PHLWORKSPACE 
pWorkspace, timespec* now, const CBox& geometry) {
@@ -138,9 +140,17 @@ static Hyprlang::CParseResult expoGestureKeyword(const 
char* LHS, const char* RH
         return result;
     }
 
-    int      startDataIdx = 2;
-    uint32_t modMask      = 0;
-    float    deltaScale   = 1.F;
+    int      startDataIdx   = 2;
+    uint32_t modMask        = 0;
+    float    deltaScale     = 1.F;
+    bool     disableInhibit = false;
+
+    for (const auto arg : 
std::string(LHS).substr(KEYWORD_EXPO_GESTURE.size())) {
+        switch (arg) {
+            case 'p': disableInhibit = true; break;
+            default: result.setError("hyprexpo-gesture: invalid flag"); return 
result;
+        }
+    }
 
     while (true) {
 
@@ -165,9 +175,9 @@ static Hyprlang::CParseResult expoGestureKeyword(const 
char* LHS, const char* RH
     std::expected<void, std::string> resultFromGesture;
 
     if (data[startDataIdx] == "expo")
-        resultFromGesture = 
g_pTrackpadGestures->addGesture(makeUnique<CExpoGesture>(), fingerCount, 
direction, modMask, deltaScale);
+        resultFromGesture = 
g_pTrackpadGestures->addGesture(makeUnique<CExpoGesture>(), fingerCount, 
direction, modMask, deltaScale, disableInhibit);
     else if (data[startDataIdx] == "unset")
-        resultFromGesture = g_pTrackpadGestures->removeGesture(fingerCount, 
direction, modMask, deltaScale);
+        resultFromGesture = g_pTrackpadGestures->removeGesture(fingerCount, 
direction, modMask, deltaScale, disableInhibit);
     else {
         result.setError(std::format("Invalid gesture: {}", 
data[startDataIdx]).c_str());
         return result;
@@ -233,7 +243,7 @@ APICALL EXPORT PLUGIN_DESCRIPTION_INFO PLUGIN_INIT(HANDLE 
handle) {
 
     HyprlandAPI::addDispatcherV2(PHANDLE, "hyprexpo:expo", ::onExpoDispatcher);
 
-    HyprlandAPI::addConfigKeyword(PHANDLE, "hyprexpo-gesture", 
::expoGestureKeyword, {});
+    HyprlandAPI::addConfigKeyword(PHANDLE, KEYWORD_EXPO_GESTURE, 
::expoGestureKeyword, {true});
 
     HyprlandAPI::addConfigValue(PHANDLE, "plugin:hyprexpo:columns", 
Hyprlang::INT{3});
     HyprlandAPI::addConfigValue(PHANDLE, "plugin:hyprexpo:gap_size", 
Hyprlang::INT{5});

Reply via email to