mirror of
https://github.com/hyprwm/hyprland-wiki.git
synced 2024-12-22 17:49:48 +01:00
4.1 KiB
4.1 KiB
weight | title |
---|---|
8 | 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 inclusives[bool]
- Whether the workspace is special or notn[bool]
,n[s:string]
,n[e:string]
- named actions.n[bool]
-> whether a workspace is a named workspace,s
ande
are starts and ends with respectivelym[monitor]
- Monitor selectorw[(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 bet
for tiled-only,f
for floating-only,g
to count groups instead of windows, andv
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
Smart gaps
To replicate "smart gaps" / "no gaps when only" from other WMs/Compositors, use this bad boy:
workspace = w[t1], gapsout:0, gapsin:0
workspace = w[tg1], gapsout:0, gapsin:0
workspace = f[1], gapsout:0, gapsin:0
windowrulev2 = bordersize 0, floating:0, onworkspace:w[t1]
windowrulev2 = rounding 0, floating:0, onworkspace:w[t1]
windowrulev2 = bordersize 0, floating:0, onworkspace:w[tg1]
windowrulev2 = rounding 0, floating:0, onworkspace:w[tg1]
windowrulev2 = bordersize 0, floating:0, onworkspace:f[1]
windowrulev2 = rounding 0, floating:0, onworkspace:f[1]
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