mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2026-05-09 23:50:21 -04:00
128 lines
4.3 KiB
Markdown
128 lines
4.3 KiB
Markdown
---
|
||
title: Layouts
|
||
description: Configure and switch between different window layouts.
|
||
---
|
||
|
||
## Supported Layouts
|
||
|
||
mangowm supports a variety of layouts that can be assigned per tag.
|
||
|
||
- `tile`
|
||
- `scroller`
|
||
- `monocle`
|
||
- `grid`
|
||
- `deck`
|
||
- `center_tile`
|
||
- `vertical_tile`
|
||
- `right_tile`
|
||
- `vertical_scroller`
|
||
- `vertical_grid`
|
||
- `vertical_deck`
|
||
- `dwindle`
|
||
|
||
---
|
||
|
||
## Scroller Layout
|
||
|
||
The Scroller layout positions windows in a scrollable strip, similar to PaperWM.
|
||
|
||
### Configuration
|
||
|
||
| Setting | Default | Description |
|
||
| :--- | :--- | :--- |
|
||
| `scroller_structs` | `20` | Width reserved on sides when window ratio is 1. |
|
||
| `scroller_default_proportion` | `0.9` | Default width proportion for new windows. |
|
||
| `scroller_focus_center` | `0` | Always center the focused window (1 = enable). |
|
||
| `scroller_prefer_center` | `0` | Center focused window only if it was outside the view. |
|
||
| `scroller_prefer_overspread` | `1` | Allow windows to overspread when there's extra space. |
|
||
| `edge_scroller_pointer_focus` | `1` | Focus windows even if partially off-screen. |
|
||
| `scroller_proportion_preset` | `0.5,0.8,1.0` | Presets for cycling window widths. |
|
||
| `scroller_ignore_proportion_single` | `1` | Ignore proportion adjustments for single windows. |
|
||
| `scroller_default_proportion_single` | `1.0` | Default proportion for single windows in scroller. **Requires `scroller_ignore_proportion_single=0` to take effect.** |
|
||
|
||
> **Warning:** `scroller_prefer_overspread`, `scroller_focus_center`, and `scroller_prefer_center` interact with each other. Their priority order is:
|
||
>
|
||
> **scroller_prefer_overspread > scroller_focus_center > scroller_prefer_center**
|
||
>
|
||
> To ensure a lower-priority setting takes effect, you must set all higher-priority options to `0`.
|
||
|
||
```ini
|
||
# Example scroller configuration
|
||
scroller_structs=20
|
||
scroller_default_proportion=0.9
|
||
scroller_focus_center=0
|
||
scroller_prefer_center=0
|
||
scroller_prefer_overspread=1
|
||
edge_scroller_pointer_focus=1
|
||
scroller_default_proportion_single=1.0
|
||
scroller_proportion_preset=0.5,0.8,1.0
|
||
```
|
||
|
||
---
|
||
|
||
## Master-Stack Layouts
|
||
|
||
These settings apply to layouts like `tile` and `center_tile`.
|
||
|
||
| Setting | Default | Description |
|
||
| :--- | :--- | :--- |
|
||
| `new_is_master` | `1` | New windows become the master window. |
|
||
| `default_mfact` | `0.55` | The split ratio between master and stack areas. |
|
||
| `default_nmaster` | `1` | Number of allowed master windows. |
|
||
| `smartgaps` | `0` | Disable gaps when only one window is present. |
|
||
| `center_master_overspread` | `0` | (Center Tile) Master spreads across screen if no stack exists. |
|
||
| `center_when_single_stack` | `1` | (Center Tile) Center master when only one stack window exists. |
|
||
|
||
```ini
|
||
# Example master-stack configuration
|
||
new_is_master=1
|
||
smartgaps=0
|
||
default_mfact=0.55
|
||
default_nmaster=1
|
||
```
|
||
|
||
---
|
||
|
||
## Dwindle Layout
|
||
|
||
The Dwindle layout arranges windows as a binary tree of recursive splits. Each new window splits the focused window's container, producing a spiral-like tiling.
|
||
|
||
### Configuration
|
||
|
||
| Setting | Default | Description |
|
||
| :--- | :--- | :--- |
|
||
| `dwindle_split_ratio` | `0.5` | Ratio used for new splits (`0.05`–`0.95`). |
|
||
| `dwindle_smart_split` | `0` | Pick the split axis from the cursor's position inside the focused window. The new window appears on the cursor's side. |
|
||
| `dwindle_hsplit` | `0` | Side-by-side splits: where the new window goes. `0` = follow cursor, `1` = right, `2` = left. |
|
||
| `dwindle_vsplit` | `0` | Top/bottom splits: where the new window goes. `0` = follow cursor, `1` = below, `2` = above. |
|
||
| `dwindle_preserve_split` | `0` | Keep the sibling's split orientation when a window is closed. |
|
||
| `dwindle_smart_resize` | `0` | When dragging to resize, move the split toward the cursor regardless of which side was grabbed. |
|
||
| `dwindle_drop_simple_split` | `1` | Drag-to-tile drop preview. `1` = 2-zone preview matching `dwindle_split_ratio`, `0` = 4-quadrant preview. |
|
||
|
||
```ini
|
||
# Example dwindle configuration
|
||
dwindle_split_ratio=0.5
|
||
dwindle_smart_split=0
|
||
dwindle_hsplit=0
|
||
dwindle_vsplit=0
|
||
dwindle_preserve_split=0
|
||
dwindle_smart_resize=0
|
||
dwindle_drop_simple_split=1
|
||
```
|
||
|
||
---
|
||
|
||
## Switching Layouts
|
||
|
||
You can switch layouts dynamically or set a default for specific tags using [Tag Rules](/docs/window-management/rules#tag-rules).
|
||
|
||
**Keybinding Examples:**
|
||
|
||
```ini
|
||
# Cycle through layouts
|
||
bind=SUPER,n,switch_layout
|
||
|
||
# Set specific layout
|
||
bind=SUPER,t,setlayout,tile
|
||
bind=SUPER,s,setlayout,scroller
|
||
```
|