Sway taskbar - #5223
Open
Samarkin wants to merge 5 commits into
Open
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.
Author
|
@AlieeLinux, @anmolmathias – would you be willing to try my branch? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.