Workspaces🔗

Triad presents tags as workspaces. A workspace is a virtual room that holds windows. You name workspaces, pin them to monitors, and assign each its own layout.

Defaults🔗

Set global workspace behavior in the workspaces block:

workspaces {
  default-count 5
  default-layout "scroller"
}
SettingFormatDescription
default-countIntMinimum number of workspaces to keep open.
default-layoutStringDefault layout ID or Janet layout name.

Workspace Rules🔗

Name workspaces, assign layouts, and pin them to outputs:

workspace-rules {
  workspace 1 name="term"
  workspace 2 name="web" default-layout="deck"
  workspace 4 name="chat" open-on-output="DP-2"
}
SettingFormatDescription
nameStringDisplay name for the workspace.
default-layoutStringLayout to use when the workspace is active.
open-on-outputStringPin the workspace to a specific monitor.

Focusing a pinned workspace moves focus to its assigned output.

Dynamic Workspaces🔗

Create a new workspace on the active output with new-workspace. Add a custom binding if you want a shortcut:

bindings {
  bind "Super+Shift+n" "new-workspace"
}

If you leave a dynamic workspace without opening a window, Triad prunes it.

Moving Workspaces🔗

Move the active workspace to another monitor:

bindings {
  bind "Super+Shift+h" "move-workspace-to-output left"
  bind "Super+Shift+l" "move-workspace-to-output right"
}

Targets can be directions (left, right, up, down) or output names (DP-2).

Workspaces Across Monitors🔗

Each monitor shows one active workspace. Every connected output maintains at least one visible workspace. When a monitor disconnects, its workspaces fall back to a connected monitor and return once the original monitor reconnects.

For output configuration, see Monitors.