Skip to content

Sway taskbar - #5223

Open
Samarkin wants to merge 5 commits into
Alexays:masterfrom
Samarkin:sway-taskbar
Open

Sway taskbar#5223
Samarkin wants to merge 5 commits into
Alexays:masterfrom
Samarkin:sway-taskbar

Conversation

@Samarkin

@Samarkin Samarkin commented Jul 28, 2026

Copy link
Copy Markdown

What does this PR do?
Adds an alternative to wlr/taskbar that 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:

  1. 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_leave for 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: wlr-taskbar sway/taskbar: sway-taskbar

  2. 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-taskbar covers Hyprland and niri only). It also removes the need for the "all-outputs": true workaround 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, since all-workspaces is now a separate option.

  3. 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.

  4. 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: true and the default sort-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

  • Code is formatted with clang-format
  • Builds locally (ninja -C build)
  • Man page updated for any new/changed user-facing option (man/)
  • Tested against the affected module(s) the newly added module thoroughly and expect no impact on other modules

Note
The PR is split into several commits that follow the natural progression of the module from a simple wlr/taskbar clone 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.

Samarkin added 5 commits July 26, 2026 18:54
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.
@Samarkin

Copy link
Copy Markdown
Author

@AlieeLinux, @anmolmathias – would you be willing to try my branch?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant