Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Workspaces

Workspaces are virtual desktops that group windows together. Each workspace lives on an output (monitor) and contains its own tiling layout. Jay creates workspaces on demand and automatically manages them when monitors are connected or disconnected.

Switching Workspaces

Use the show-workspace action to switch to a workspace. In the default configuration, alt-F1 through alt-F12 switch to workspaces named “1” through “12”:

[shortcuts]
alt-F1  = { type = "show-workspace", name = "1" }
alt-F2  = { type = "show-workspace", name = "2" }
alt-F3  = { type = "show-workspace", name = "3" }
# ... and so on through alt-F12

If the workspace does not yet exist, it is created on the output that currently contains the cursor. You can override this by specifying an output:

[shortcuts]
alt-F1 = {
    type = "show-workspace",
    name = "1",
    output.name = "left",
}

You can also scroll over the bar to cycle through workspaces on that output.

Moving Windows to Workspaces

Use the move-to-workspace action to send the focused window to a different workspace. The default bindings are alt-shift-F1 through alt-shift-F12:

[shortcuts]
alt-shift-F1  = { type = "move-to-workspace", name = "1" }
alt-shift-F2  = { type = "move-to-workspace", name = "2" }
alt-shift-F3  = { type = "move-to-workspace", name = "3" }
# ... and so on through alt-shift-F12

You can also drag a tile’s title onto a workspace tab in the bar to move it to that workspace. Dragging a tile onto the bar outside any workspace tab creates a new workspace for it.

Moving Workspaces Between Outputs

The move-to-output action moves a workspace to a different output. You can target the output by name or by direction:

[shortcuts]
# Move the current workspace to a named output
alt-o = { type = "move-to-output", output.name = "right" }

# Move the current workspace in a direction
logo-ctrl-shift-Right = {
    type = "move-to-output",
    direction = "right",
}
logo-ctrl-shift-Left = {
    type = "move-to-output",
    direction = "left",
}
logo-ctrl-shift-Up = {
    type = "move-to-output",
    direction = "up",
}
logo-ctrl-shift-Down = {
    type = "move-to-output",
    direction = "down",
}

You can also move a specific workspace by name:

[shortcuts]
alt-o = {
    type = "move-to-output",
    workspace = "1",
    output.name = "right",
}

If workspace is omitted, the currently active workspace is moved.

Workspace Display Order

Workspaces appear as tabs in the bar. Their order can be configured in two modes:

  • manual (default) – workspaces appear in the order they were created and can be reordered by dragging their titles in the bar.
  • sorted – workspaces are sorted alphabetically. Dragging to reorder is disabled.

Set the order in your configuration:

workspace-display-order = "sorted"

You can also change this at runtime in the control center.

Hot-Plug and Hot-Unplug

Jay handles monitor connections gracefully:

  • When a monitor is unplugged, its workspaces are automatically migrated to one of the remaining monitors.
  • When the monitor is plugged back in, those workspaces are restored to it.

This means you never lose your workspace layout when docking or undocking a laptop.

Workspace Capture

By default, newly created workspaces can be captured for screen sharing. You can disable this globally:

workspace-capture = false

When workspace capture is enabled, screen-sharing applications can share individual workspaces (in addition to full outputs and individual windows). See Screen Sharing for more details.

Matching Windows by Workspace

In window rules, you can match windows based on the workspace they are on:

[[windows]]
match.workspace = "music"
action = "enter-fullscreen"

The workspace-regex field is also available for pattern matching:

[[windows]]
match.workspace-regex = "^(music|video)$"
action = "enter-fullscreen"

Since window rules are reactive, these rules are re-evaluated whenever a window moves to a different workspace.