Skip to content
github-actions[bot] edited this page Jul 4, 2026 · 17 revisions

Note

This page is auto-generated from man/waybar-wlr-taskbar.5.scd on the master branch. Do not edit it here — changes will be overwritten on the next sync. To update it, edit the man page(s) and open a PR.

DESCRIPTION

The taskbar module displays the currently open applications. This module requires a compositor that implements the foreign-toplevel-manager interface.

CONFIGURATION

Addressed by wlr/taskbar

Option Typeof Default Description
all-outputs bool false If set to false applications on the waybar's current output will be shown. Otherwise, all applications are shown.
bar-css-states bool false If set to true, application state is exposed as CSS classes on the Waybar window. Maximized and fullscreen state is aggregated across applications known to belong to the active workspace. See Bar state style below.
format string {icon} The format, how information should be displayed.
icon-theme array|string The names of the icon-themes that should be used to find an icon. The list will be traversed from left to right. If omitted, the system default will be used.
icon-size integer 16 The size of the icon.
markup bool false If set to true, pango markup will be accepted in format and tooltip-format.
tooltip bool true If set to false no tooltip will be shown.
tooltip-format string {title} The format, how information in the tooltip should be displayed.
active-first bool false If set to true, always reorder the tasks in the taskbar so that the currently active one is first. Otherwise don't reorder.
active-only bool false If set to true, only the currently active application button is shown. Other applications remain tracked and reappear when activated.
sort-by-app-id bool false If set to true, group tasks by their app_id. Cannot be used with 'active-first'.
homogeneous bool false If set to true, distribute every task button evenly across the taskbar's allocated width. Buttons will automatically resize so that 'N' visible tasks each take '1/N' of the width.
justify string The alignment of the text within the module's box, allowing options 'left', 'right', or 'center' to define the positioning.
expand bool false If set to true, task buttons stretch to fill the available space in the taskbar and long titles are ellipsized to fit. Only takes effect on a horizontal bar; on a vertical bar the buttons keep their content-based size. If set to false, buttons are sized to their content.
truncate bool false If set to true, the task button text will be ellipsized (truncated with …) when the available button width is smaller than the label text.
on-click string The action which should be triggered when clicking on the application button with the left mouse button.
on-click-middle string The action which should be triggered when clicking on the application button with the middle mouse button.
on-click-right string The action which should be triggered when clicking on the application button with the right mouse button.
on-update string Command to execute when the module is updated.
ignore-list array List of app_id/titles to be invisible.
squash-list array List of app_id/titles whose multiple instances are collapsed into a single button. When more than one instance of a listed app is open, only one button is shown; when one instance closes, the next hidden instance reappears. The special value '*' matches all applications.
app_ids-mapping object Dictionary of app_id to be replaced with
rewrite object Rules to rewrite the module format output. See rewrite rules.

FORMAT REPLACEMENTS

{icon}: The icon of the application.

{name}: The application name as in desktop file if appropriate desktop files are found, otherwise same as {app_id}

{title}: The title of the application.

{app_id}: The app_id (== application name) of the application.

{state}: The state (minimized, maximized, active, fullscreen) of the application.

{short_state}: The state (minimize == m, maximized == M, active == A, fullscreen == F) represented as one character of the application.

As with all format replacements in Waybar, a length limit such as {title:.15} is measured in bytes, not characters. This may produce invalid text if a multi-byte character is split, or (when markup is true) if the truncation cuts through a value that must be escaped in XML.

CLICK ACTIONS

activate: Bring the application into foreground.

minimize: Toggle application's minimized state.

minimize-raise: Bring the application into foreground or toggle its minimized state.

maximize: Toggle application's maximized state.

fullscreen: Toggle application's fullscreen state.

close: Close the application.

REWRITE RULES

rewrite is an object where keys are regular expressions and values are rewrite rules if the expression matches. Rules may contain references to captures of the expression.

Regular expression and replacement follow ECMA-script rules.

An expression must match the format output fully to trigger its replacement.

If no expression matches, the format output is left unchanged.

Invalid expressions (e.g., mismatched parentheses) are skipped.

EXAMPLES

"wlr/taskbar": {
	"format": "{icon}",
	"icon-size": 14,
	"icon-theme": "Numix-Circle",
	"tooltip-format": "{title}",
	"on-click": "activate",
	"on-click-middle": "close",
	"ignore-list": [
	    "Alacritty"
	],
	"app_ids-mapping": {
		"firefoxdeveloperedition": "firefox-developer-edition"
	},
	"rewrite": {
		"Firefox Web Browser": "Firefox",
		"Foot Server": "Terminal"
	}
}

Style

  • #taskbar

  • #taskbar.empty

  • #taskbar button

  • #taskbar button.maximized

  • #taskbar button.minimized

  • #taskbar button.active

  • #taskbar button.fullscreen

Bar state style

When bar-css-states is enabled, the following classes are added to window#waybar:

  • window#waybar.toplevel-active

  • window#waybar.toplevel-maximized

  • window#waybar.toplevel-minimized

  • window#waybar.toplevel-fullscreen

The active, minimized classes describe the active application. The maximized and fullscreen classes are set if any non-minimized application known to belong to the active workspace has that state.

Workspace membership is learned when an application is activated and requires the compositor to support ext-workspace-v1. Before an application has been activated during the current Waybar session, its workspace may be unknown. On compositors without ext-workspace-v1, these classes fall back to the active application's state.

For example:

window#waybar {
	background-color: rgba(0, 0, 0, 0.5);
}

window#waybar.toplevel-maximized {
	background-color: rgba(0, 0, 0, 1);
}

Clone this wiki locally