Commit Graph
45 Commits
Author SHA1 Message Date
Austin Horstman cbad42bc9b fix(wlr/taskbar): stop forcing tasks onto every output's bar
hide_if_duplicate() unconditionally re-ran handle_output_enter() with
the bar's own wl_output for every non-squashed task, so any app_id or
title event made the task visible on all bars and "all-outputs": false
was effectively ignored. The un-squash path in handle_closed() showed
the replacement task unconditionally, with the same effect.

Track whether the toplevel is actually on the bar's output from the
protocol's output_enter/output_leave events, split the button
show/hide logic out of the protocol handlers, and gate every synthetic
re-show on all-outputs or the tracked output membership.

Fixes #5178
2026-07-05 10:23:06 -05:00
Alex 3df1a13b7d Merge remote-tracking branch 'origin/master' into pr-3740
# Conflicts:
#	include/modules/wlr/taskbar.hpp
#	src/modules/wlr/taskbar.cpp
2026-07-04 00:50:23 +02:00
iamcheyan 14e59daae4 feat(wlr/taskbar): expose active toplevel state on the bar window
Add opt-in bar-css-states option to wlr/taskbar module.

When enabled, the module tracks the active workspace and updates CSS
classes on window#waybar to reflect the current window state:
- toplevel-active: when a window is focused
- toplevel-maximized: when any non-minimized window on active workspace is maximized
- toplevel-minimized: when the active window is minimized
- toplevel-fullscreen: when any non-minimized window on active workspace is fullscreen

This feature requires compositor support for ext-workspace-v1 protocol
to correctly track workspace membership. Without it, classes fall back
to the active application state only.

Also includes active-only option implementation.

Changes:
- Add ext-workspace-v1 protocol support for workspace tracking
- Implement WorkspaceState tracking in Taskbar class
- Add workspace management lifecycle (create/remove/done)
- Add bar CSS class update logic with aggregation
- Add visible() getter to Task class
- Implement active-only task visibility control
- Update man page with documentation and CSS examples

Signed-off-by: iamcheyan <iamcheyan@users.noreply.github.com>
2026-06-13 11:34:29 +09:00
Alex 47fb21a2c1 chore: upgrade to clang-format@21 2026-02-04 09:24:14 +01:00
Noak Palander ae3420813c fixed bug; when the shown task is removed it promotes another one 2025-09-30 19:29:19 +02:00
Noak Palander d5e45615bb added a taskbar squash option 2025-09-30 19:29:18 +02:00
Alexis Rouillard f1b7d829c2 Merge pull request #4016 from jp7677/ext-workspaces
ext/workspaces: port from wlr/workspaces to ext-workspace-v1 for a.o. labwc support
2025-08-08 08:18:01 +02:00
Jens Peters 29bf5d5da1 ext/workspaces: moved/renamed from wlr/workspaces
The ext-workspace-v1 protocol is not wlr/wlroots
specific.
2025-06-29 21:51:31 +02:00
Jens Peters 255c0ebe28 wlr/workspaces: port to ext-workspace-v1
Rework implementation to match new protocol behavior.
2025-06-29 21:51:31 +02:00
Pol Rivero bc2e143ac5 Extract icon loading logic to separate class 2025-01-27 11:46:35 +01:00
Scott Moreau 4d89c64bed taskbar: Fixup whitespace 2024-08-26 04:44:22 -06:00
Scott Moreau fdc8431709 taskbar: Send minimize geometry hints
This allows compositors to know the minimize widget geometry so that
minimize animations work properly.
2024-08-04 22:49:51 -06:00
MonstrousOgre c04485a5d0 separate css class for empty workspaces 2023-05-05 00:09:32 +05:30
Alex b1e3347fca Merge pull request #2089 from MonstrousOgre/master 2023-04-17 08:59:22 +02:00
MonstrousOgre 5791a6abc6 Reading persistent workspaces 2023-03-24 23:11:47 +05:30
Louis DeLosSantos 79eb2f5bc1 wlr-taskbar: allow sorting by app_id
some users (maybe only myself) may want to sort the task bar by app_id
which then places occurrences of the same task next to each other.

Signed-off-by: Louis DeLosSantos <louis.delos@gmail.com>
2023-03-01 12:16:28 +00:00
Alex 2d7e21ed7d fix: lint 2022-10-26 17:26:15 +02:00
bi4k8 ff61e7bf4e taskbar: implement drag-and-drop task reordering 2022-10-25 19:39:23 +00:00
herlev 9a0013cb10 Add option to wlr/workspaces to sort workspaces by number 2022-10-15 01:44:58 +02:00
Alex f2fcadbf62 refactor: lint 2022-04-06 08:37:19 +02:00
dmitry 812832d38a fix: Missing tasks 2022-01-05 15:38:52 +03:00
dmitry 166504256a Merge branch 'master' of https://github.com/Alexays/Waybar into pr/anakael/add-name-to-taskbar 2021-11-23 23:10:49 +03:00
Alex 0a4841371b Merge branch 'master' into workspace-manager-implementation 2021-11-23 13:52:08 +01:00
dmitry 23991b6543 Finish 2021-11-23 03:10:44 +03:00
dmitry ef4c6a9ba3 Update to proto. Fix displaying. Rename classes. 2021-11-22 01:12:55 +03:00
dmitry ffeecf626c Update names 2021-11-21 15:01:25 +03:00
Anakael cb6af026f6 Update taskbar.hpp 2021-11-19 18:51:28 +03:00
Anakael 18ea53fcbc Update taskbar.hpp 2021-11-19 18:39:49 +03:00
Anakael 23955fdcc2 Update taskbar.hpp 2021-11-19 18:38:59 +03:00
dmitry 15761ef802 Merge branch 'master' of https://github.com/Alexays/Waybar into workspace-manager-implementation 2021-11-16 21:44:50 +03:00
dmitry 75a6dddea5 Finish 2021-10-20 01:23:00 +03:00
dmitry ddfe036f00 Format 2021-08-22 20:42:16 +03:00
dmitry 38afa345dd Finish 2021-08-22 20:18:03 +03:00
dmitry 61783aafaa save 2021-08-17 04:31:17 +03:00
dmitry 5ad3b6018a Remove exceed protected 2021-04-18 21:37:58 +03:00
dmitry ba278985e8 Add ignore-list param to wlr/taskbar 2021-04-18 21:34:29 +03:00
dmitry b54fb24745 Remove trim usage in format
Some clang-tidy fixes
2020-08-16 15:54:21 +03:00
dmitry 22409d27c5 Fix docs typos
Add removing buttons
Adjust handling multiple outputs.
2020-08-11 00:28:56 +03:00
dmitry 0ad29a5960 Finish base implementation 2020-08-07 23:46:47 +03:00
dmitry 4c251578e9 Add formatting and states handling 2020-08-07 02:45:08 +03:00
dmitry 7638f5c595 Add base name representation 2020-08-06 01:42:57 +03:00
dmitry edd4d8ee11 Finish implement wlr 2020-08-05 23:10:08 +03:00
dmitry 2b11b7ef8c Base wlr impl (Manager, Group) 2020-08-05 02:17:38 +03:00
Till Smejkal 06ad35c42b Add support for multiple icon themes in the config
If there are multiple icon themes defined in the config option
'icon-theme' the module will try from left to right to find an icon.
The system default will always be added to this list.
2020-07-05 13:16:38 +02:00
Till SmejkalandAlex adaf843048 foreign-toplevel-manager based taskbar module (#692)
Co-authored-by: Alex <alexisr245@gmail.com>
2020-05-30 12:07:38 +02:00