Workspace Rules

Workspace Rules

Workspace Rules

You can set workspace rules to achieve workspace-specific behaviors. For instance, you can define a workspace where all windows are drawn without borders or gaps.

For layout-specific rules, see the specific layout page. For example: Master Layout->Workspace Rules

Workspace selectors

Workspaces that have already been created can be targeted by workspace selectors, e.g. r[2-4] w[t1]

Selectors have props separated by a space. No spaces are allowed inside props themselves.

Props:

  • r[A-B] - ID range from A to B inclusive
  • s[bool] - Whether the workspace is special or not
  • n[bool], n[s:string], n[e:string] - named actions. n[bool] -> whether a workspace is a named workspace, s and e are starts and ends with respectively
  • m[monitor] - Monitor selector
  • w[(flags)A-B], w[(flags)X] - Prop for window counts on the workspace. A-B is an inclusive range, X is a specific number. Flags can be omitted. It can be t for tiled-only, f for floating-only, g to count groups instead of windows, and v to count only visible windows.
  • f[-1], f[0], f[1], f[2] - fullscreen state of the workspace. -1: no fullscreen, 0: fullscreen, 1: maximized, 2, fullscreen without fullscreen state sent to the window.

Syntax

workspace=WORKSPACE,RULES
  • WORKSPACE is a valid workspace identifier (see Dispatchers->Workspaces). This field is mandatory. This can be a workspace selector, but please note workspace selectors can only match existing workspaces.
  • RULES is one (or more) rule(s) as described here in rules.

Examples

workspace=name:myworkspace,gapsin:0,gapsout:0
workspace=3,rounding:false,bordersize:0
workspace=w[tg1-4],shadow:false

Rules

RuleDescriptiontype
monitor:[m]Binds a workspace to a monitor. See syntax and Monitors.string
default:[b]Whether this workspace should be the default workspace for the given monitorbool
gapsin:[x]Set the gaps between windows (equivalent to General->gaps_in)int
gapsout:[x]Set the gaps between windows and monitor edges (equivalent to General->gaps_out)int
bordersize:[x]Set the border size around windows (equivalent to General->border_size)int
border:[b]Whether to draw borders or notbool
shadow:[b]Whether to draw shadows or notbool
rounding:[b]Whether to draw rounded windows or notbool
decorate:[b]Whether to draw window decorations or notbool
persistent:[b]Keep this workspace alive even if empty and inactivebool
on-created-empty:[c]A command to be executed once a workspace is created empty (i.e. not created by moving a window to it). See the command syntaxstring
defaultName:[s]A default name for the workspace.string

Example Rules

workspace = 3, rounding:false, decorate:false
workspace = name:coding, rounding:false, decorate:false, gapsin:0, gapsout:0, border:false, decorate:false, monitor:DP-1
workspace = 8,bordersize:8
workspace = name:Hello, monitor:DP-1, default:true
workspace = name:gaming, monitor:desc:Chimei Innolux Corporation 0x150C, default:true
workspace = 5, on-created-empty:[float] firefox
workspace = special:scratchpad, on-created-empty:foot