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});