Sway taskbar - #5223
Conversation
An alternative to wlr/taskbar that uses Sway IPC instead of wayland. One noteable difference is ability to display all applications from tabbed containers.
wlr/taskbar had no concept of sway workspaces, so it had to treat them as separate outputs, but we are not constrained by Wayland anymore and can finally separate the two. Default of all-workspaces is defined in such way that not specifying it at all mimics the behavior of wlr/taskbar.
|
@AlieeLinux, @anmolmathias – would you be willing to try my branch? |
|
@Alexays – did you get a chance to take a look yet? |
|
@Samarkin sorry for late reply, I will try it! |
|
@AlieeLinux – thanks for the test! Try |
|
!! need |
|
hmm seem to notice that this patch only work on sway,,, not wlroots DE's :((( |
|
@Alexays – is there any issue with the code that you want me to address? |

What does this PR do?
Adds an alternative to
wlr/taskbarthat uses Sway IPC instead of a generic Wayland protocol.The new module's configuration is a superset of
wlr/taskbar's, so it works as a drop-in replacement.Immediately available benefits:
Ability to display applications in tabbed containers.

Fixes "wlr/taskbar" module doesn't work properly on new swaywm 1.12 release #5084, where Sway 1.12 / wlroots 0.20 started sending
output_leavefor windows outside the active workspace, so the toplevel protocol stopped reporting them. Also addresses the limitation diagnosed in Group icons in wlr-taskbar for windows in a container #1043.wlr/taskbar:sway/taskbar:Separation of workspaces and outputs.
Implements the six-year-old request in [Taskbar] Add option "all_workspaces" #762, and gives Sway the per-workspace filtering that how to show only opened apps in the current workspace in wlr/taskbar? #1997 and Taskbar - Limit to current workspace #3591 were closed without (
workspace-taskbarcovers Hyprland and niri only). It also removes the need for the"all-outputs": trueworkaround from "wlr/taskbar" module doesn't work properly on new swaywm 1.12 release #5084, which trades away per-output filtering to get per-workspace behavior, sinceall-workspacesis now a separate option.New CSS classes for windows on the visible workspace and current output (
.visible,.current_output), so windows you aren't looking at can be de-emphasized in CSS rather than hidden outright.Per-workspace ordering.
Tasks follow Sway's tree order, grouped by output and workspace, rather than the order they were opened – what [wlr/Taskbar] Add an option to sort opened application by workspace #1278 asked for. Visible with
all-workspaces: trueand the defaultsort-by-app-id: false.Related issues
Closes #5084
Closes #762
Closes #1997 (for Sway too this time)
Closes #3591 (for Sway too this time)
Closes #1278
Refs #2656
Refs #1043
Checklist
clang-formatninja -C build)man/)against the affected module(s)the newly added module thoroughly and expect no impact on other modulesNote
The PR is split into several commits that follow the natural progression of the module from a simple
wlr/taskbarclone to a genuinely useful expansion.A good way to review is to explore the diff between the first commit and wlr/taskbar, and then treat every next commit as a separate change.