Commit Graph
219 Commits
Author SHA1 Message Date
Emiliano Deustua 5f7629a36e format: Fix clang formatting 2026-07-04 01:42:54 +02:00
Emiliano Deustua 95664c7662 fix: Remove load persistent workspaces from workspace rules 2026-07-04 01:42:54 +02:00
Emiliano Deustua 7c86f1ccb4 fix: Use workspace ID to handle workspace updates 2026-07-04 01:42:54 +02:00
Alexis Rouillard 37dbd59dac Merge pull request #3017 from 0x000C0A71/master
[hyprland/workspaces] Add tooltips to hyprland/workspaces
2026-07-04 01:12:10 +02:00
Alexis Rouillard 78b9a38532 Merge pull request #4320 from LoricAndre/master
feat(hyprland/workspaces): add uniqueIcons option
2026-07-04 01:12:05 +02:00
Alex 8276f6a629 Merge remote-tracking branch 'origin/master' into pr-3017
# Conflicts:
#	include/modules/hyprland/workspaces.hpp
#	man/waybar-hyprland-workspaces.5.scd
#	src/modules/hyprland/workspaces.cpp
2026-07-04 00:55:38 +02:00
Alexis Rouillard 24dba2bb24 Merge pull request #4694 from whymusticode/max-icons
feat(hyprland/workspaces): add deduplication and max-icons option to workspace-taskbar
2026-07-04 00:55:34 +02:00
Alex 05f32172df Merge remote-tracking branch 'origin/master' into pr-4320
# Conflicts:
#	include/modules/hyprland/workspaces.hpp
#	man/waybar-hyprland-workspaces.5.scd
#	src/modules/hyprland/workspace.cpp
#	src/modules/hyprland/workspaces.cpp
2026-07-04 00:51:21 +02:00
Alex 08e457e3cd Merge remote-tracking branch 'origin/master' into pr-4694
# Conflicts:
#	src/modules/hyprland/workspace.cpp
2026-07-04 00:41:50 +02:00
Alexis Rouillard 423ca224f5 Merge branch 'master' into master 2026-07-04 00:32:08 +02:00
Alex e792ed8f85 Merge remote-tracking branch 'origin/master' into pr-4861
# Conflicts:
#	src/modules/hyprland/workspace.cpp
2026-07-03 23:51:19 +02:00
Alexis Rouillard 2f6720c053 Merge pull request #4981 from xiyori/max-windows
Add max-windows option to hyprland/workspaces
2026-07-03 22:58:37 +02:00
Alexis Rouillard 5ff20943a9 Merge branch 'master' into hide-active 2026-07-03 22:22:24 +02:00
Alexis Rouillard 93db40b829 Merge branch 'master' into master 2026-07-03 22:22:21 +02:00
Alexis Rouillard 4700f2b423 Merge branch 'master' into max-windows 2026-07-03 22:22:16 +02:00
Alexis Rouillard fd81ff299e Merge pull request #4753 from The-Robin-Hood/master
hyprland/workspaces persistent fix and improve cursor handling configuration
2026-07-03 21:00:47 +02:00
Ansari 2ff2861e88 Merge remote-tracking branch 'upstream/master' 2026-05-27 12:13:51 +05:30
buzz eb3b86c4d8 fix(hyprland/workspaces): support on-scroll-up and on-scroll-down config options
The handleScroll method unconditionally dispatched workspace cycling commands
and never checked for custom on-scroll-up/on-scroll-down config values.

Register the scroll handler when custom scroll commands are configured (even
without enable-bar-scroll), and delegate to AModule::handleScroll so user
commands are executed, matching the pattern used by other modules.
2026-05-21 17:02:39 +02:00
yyyumeniku 2a05edaf6a hyprland/workspaces: add debounce timer to prevent workspace button flicker
When switching between workspaces rapidly (especially empty ones),
Hyprland sends createworkspace and destroyworkspace events slightly
out of order. This causes workspace buttons to render in wrong
positions for a split second before snapping to their correct spots.

Add a 7ms debounce timer that batches workspace events before
calling dp.emit(), preventing the visual glitch.

Fixes #4376
2026-05-12 20:09:13 -04:00
Higor Prado e17c0d9f0a fix(hyprland/workspaces): adapt dispatch commands for Lua IPC protocol
Hyprland 0.54 replaced the text-based dispatch socket protocol with a
Lua-based one. Commands like "dispatch workspace 1" are now interpreted
as invalid Lua (return hl.dispatch(workspace 1)), breaking workspace
clicks and scroll navigation.

Add IPC::dispatch() that probes the running Hyprland on first call and
routes commands through the new hl.dsp Lua API when the Lua protocol is
detected, falling back to the old text format otherwise.
2026-04-29 16:41:11 -03:00
xiyori 503d99b128 Add max-windows option to hyprland/workspaces 2026-04-09 14:15:56 +03:00
eonphi f5d2ef1c4c Merge remote-tracking branch 'upstream/master' 2026-03-10 14:27:40 +01:00
Austin Horstman dd47a2b826 fix(hyprland/workspaces): stabilize reload and event handling
Hyprland workspace reloads could stack duplicate scroll-event connections,
causing a single wheel gesture to switch multiple workspaces after repeated
config reloads. The persistent-workspaces monitor-array form also created the
monitor name instead of the configured workspace name.

Disconnect and replace the scroll handler on reinit, fix the persistent
workspace name selection, normalize urgent-window address matching, and reject
malformed workspace payloads before they corrupt the local state machine.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-07 21:06:30 -06:00
Austin Horstman fe03dfaa3b perf(memory): eliminate deep copies in range-based for loops and lambdas
This commit addresses memory churn caused by implicit deep copies during traversal and allocation of complex structures:

- Replaced pass-by-value 'Json::Value' in std::ranges and range-based for loops with 'const auto&' or 'const Json::Value&' in Hyprland modules, preventing large JSON tree duplications on every update.

- Fixed implicit string and pair copies in UPower and CPU Frequency loops by converting 'auto' to 'const auto&' where possible.

- Added 'std::vector::reserve' calls before 'push_back' loops in MPRIS, Niri, and CFFI modules to prevent exponential vector reallocation during initialization.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-02 22:54:07 -06:00
Austin Horstman 4c71b2bf9f perf(memory): optimize C++ string operations to reduce heap fragmentation
- Replaced pass-by-value std::string parameters with const std::string&
or std::string_view to prevent SSO overallocations.

- Refactored static mapping functions in UPower to return
std::string_view instead of constructing std::string literals, enabling
perfect cache locality.

- Optimized string concatenation in hot loops (network IPs, inhibitor
lists, sway window marks) by using std::string::append() and
pre-reserving capacity instead of overloaded operator+ which produces
temporary heap instances.

These optimizations reduce high-frequency memory churn and overall heap
fragmentation within the main rendering loops.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-02 22:54:07 -06:00
Alex e18939210b fix: lint 2026-02-24 00:00:57 +01:00
eonphi 736c053350 feat(hyprland/workspaces): grouping icons 2026-02-14 16:37:35 +01:00
vawvaw 5b595a4dfe hyprland/workspaces: Add enable-bar-scroll option 2026-02-13 20:48:59 +01:00
Ansari c4f1aba11c Merge branch 'Alexays:master' into master 2026-02-10 20:52:57 +05:30
Alex 39e59e557f fix: double free / uncatched errors 2026-02-04 09:47:00 +01:00
Alex 47fb21a2c1 chore: upgrade to clang-format@21 2026-02-04 09:24:14 +01:00
Ansari 3df7a684fc Merge remote-tracking branch 'upstream/master' 2026-01-22 21:47:09 +05:30
zjeffer 8f5fc990a5 hyprland/workspaces: don't show persistent special workspaces if show-special is disabled 2026-01-10 13:29:40 +01:00
Ansari a8a41bd17c fix(workspaces): skip ignored workspaces in persistent rules 2026-01-03 11:20:03 +05:30
mike b 85aac3fee7 feature to limit the number of icons displayed 2025-12-11 14:46:32 -05:00
Alexis Rouillard a16d53b30d Merge branch 'master' into fix/zjeffer/thread-sanitizer-warning 2025-10-05 10:51:47 +02:00
Alexis Rouillard 4f16ec16f9 Merge pull request #4395 from pol-rivero/workspace-taskbar-improvements
[hyprland/workspaces] Taskbar improvements
2025-10-01 14:27:13 +02:00
Pol Rivero 45d01ce6e5 Implement "active-window-position" 2025-08-18 21:23:36 +02:00
Pol Rivero 691b7d427b Implement "reverse-direction" 2025-08-18 20:49:14 +02:00
zjeffer 5079884b78 Hyprland IPC improvements, fix tsan warning, WindowCount shouldn't create a separate IPC 2025-08-12 19:39:36 +02:00
Skylar Abruzese 64b64d0316 Moved workspace id failing to parse from an error to part of the trace.
With named persistent workspaces it is expected behavior that they have
no id since their workspace may not have been created by hyprland yet.
2025-08-09 18:33:35 -04:00
Pol Rivero 5bbace1d43 Merge remote-tracking branch 'upstream/master' 2025-07-29 23:30:44 +02:00
LoricAndre 383949795e feat(hyprland/workspaces): add uniqueIcons option 2025-07-23 17:38:25 +02:00
peelz b4d95b405c style: clang-format 2025-07-20 22:40:29 -04:00
arnaud-ma 8dcdd97879 small fixes 2025-07-19 05:01:29 +02:00
arnaud-ma 2dc2b5ccfd fix #4307 2025-07-19 04:50:59 +02:00
arnaud-ma a4f200cdb5 revert 2025-07-19 04:47:31 +02:00
arnaud-ma 64ed2cd970 fix indentation 2025-07-19 03:23:32 +02:00
arnaud-ma e45883088d hyprland: Remove redundant workspace rules loading 2025-07-19 03:18:48 +02:00
Alexis Rouillard 94777921d9 Merge pull request #4272 from labruzese/master
fix: hyprland named persistent workspaces
2025-07-13 09:07:26 +02:00