hyprland-wiki/pages/Configuring/Workspace-Rules.md

3.5 KiB

weight title
8 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

Rule Description type
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 monitor bool
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 not bool
shadow:[b] Whether to draw shadows or not bool
rounding:[b] Whether to draw rounded windows or not bool
decorate:[b] Whether to draw window decorations or not bool
persistent:[b] Keep this workspace alive even if empty and inactive bool
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 syntax string
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