---
name: "waybar-sway-window"
section: "5"
platform: "linux"
package: "waybar"
version: "0.15.0-3"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/waybar-sway-window"
---

# waybar-sway-window(5)

sway window module

## NAME

waybar - sway window module

## DESCRIPTION

The **window** module displays the title of the currently focused window in Sway

## CONFIGURATION

Addressed by **sway/window**

**format**: \
 typeof: string \
 default: {title} \
 The format, how information should be displayed.

**rotate**: \
 typeof: integer \
 Positive value to rotate the text label (in 90 degree increments).

**max-length**: \
 typeof: integer \
 The maximum length in character the module should display.

**min-length**: \
 typeof: integer \
 The minimum length in characters the module should accept.

**align**: \
 typeof: float \
 The alignment of the label within the module, where 0 is left-aligned and 1 is right-aligned. If the module is rotated, it will follow the flow of the text.

**justify**: \
 typeof: string \
 The alignment of the text within the module's label, allowing options 'left', 'right', or 'center' to define the positioning.

**on-click**: \
 typeof: string \
 Command to execute when clicked on the module.

**on-click-middle**: \
 typeof: string \
 Command to execute when middle-clicked on the module using mousewheel.

**on-click-right**: \
 typeof: string \
 Command to execute when you right-click on the module.

**on-update**: \
 typeof: string \
 Command to execute when the module is updated.

**on-scroll-up**: \
 typeof: string \
 Command to execute when scrolling up on the module.

**on-scroll-down**: \
 typeof: string \
 Command to execute when scrolling down on the module.

**smooth-scrolling-threshold**: \
 typeof: double \
 Threshold to be used when scrolling.

**tooltip**: \
 typeof: bool \
 default: true \
 Option to disable tooltip on hover.

**all-outputs**: \
 typeof: bool \
 default: false \
 Option to show the focused window along with its workspace styles on all outputs.

**offscreen-css**: \
 typeof: bool \
 default: false \
 Only effective when all-outputs is true. Adds style according to present windows on unfocused outputs instead of showing the focused window and style.

**offscreen-css-text**: \
 typeof: string \
 Only effective when both all-outputs and offscreen-style are true. On screens currently not focused, show the given text along with that workspace styles.

**show-focused-workspace-name**: \
 typeof: bool \
 default: false \
 If the workspace itself is focused and the workspace contains nodes or floating\_nodes, show the workspace name. If not set, text remains empty but styles according to nodes in the workspace are still applied.

**show-hidden-marks**: \
 typeof: bool \
 default: false \
 For the **{marks}** format replacement, include hidden marks that start with an underscore.

**rewrite**: \
 typeof: object \
 Rules to rewrite the module format output. See **rewrite rules**.

**icon**: \
 typeof: bool \
 default: false \
 Option to hide the application icon.

**icon-size**: \
 typeof: integer \
 default: 24 \
 Option to change the size of the application icon.

**expand**: \
 typeof: bool \
 default: false \
 Enables this module to consume all left over space dynamically.

## FORMAT REPLACEMENTS

**{title}**: The title of the focused window.

**{app\_id}**: The app\_id of the focused window.

**{shell}**: The shell of the focused window. It's 'xwayland' when the window is running through xwayland, otherwise, it's 'xdg-shell'.

**{marks}**: Marks of the window.

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

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

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

## EXAMPLES

```
"sway/window": {
	"format": "{}",
	"max-length": 50,
	"rewrite": {
		"(.*) - Mozilla Firefox": "🌎 $1",
		"(.*) - zsh": "> [$1]"
	}
}
```

## STYLE

- •

  **#window**

The following classes are applied to the entire Waybar rather than just the window widget:

- •

  **window#waybar.empty** When no windows are in the workspace, or screen is not focused and offscreen-css option is not set

- •

  **window#waybar.solo** When one tiled window is in the workspace

- •

  **window#waybar.floating** When there are only floating windows in the workspace

- •

  **window#waybar.stacked** When there is more than one window in the workspace and the workspace layout is stacked

- •

  **window#waybar.tabbed** When there is more than one window in the workspace and the workspace layout is tabbed

- •

  **window#waybar.tiled** When there is more than one window in the workspace and the workspace layout is splith or splitv

- •

  **window#waybar.\<app\_id\>** Where **app\_id** is the app\_id or **instance** name like (**chromium**) of the only window in the workspace
