You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jul 23, 2026. It is now read-only.
Copy file name to clipboardExpand all lines: docs/mango-ext-features/extended-layouts.md
+44-3Lines changed: 44 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,6 +12,13 @@ Mango-exts `canvas` layout is similar to window managers like hevel. It lets you
12
12
|`canvas_tiling_gap`|int| determines the size of window gaps when using canvas_tiling|
13
13
|`canvas_pan_on_kill`|bool| wether or not to pan to another window when the current window is killed|
14
14
|`canvas_anchor_animate`|bool| when set to 1, smoothly animates the pan when jumping to an anchor point. Default: 0 (instant teleport)|
15
+
|`tag_carousel`|bool| when set to 1, tag switching wraps around carousel-style (last tag loops back to first). Default: 0 |
16
+
17
+
#### Window rules
18
+
19
+
|rule|Description|
20
+
|:---|:---|
21
+
|`canvas_notile:1`| exclude matching windows from canvas tiling. Add as a windowrule parameter. |
15
22
16
23
#### canvas_tiling options
17
24
@@ -28,9 +35,10 @@ Mango-exts `canvas` layout is similar to window managers like hevel. It lets you
28
35
29
36
|dispatcher|Description|
30
37
|:--- |:---|
31
-
|`canvas-overview-toggle`| toggles the canvas layouts' overview feature. This lets you see all of your windows at once and quickly reposition your view.|
38
+
|`canvas_overview_toggle`| toggles the canvas layouts' overview feature. This lets you see all of your windows at once and quickly reposition your view.|
32
39
|`toggleminimap`| toggles the minimap, which displays all of your windows along with a visual indicator of your current view.|
33
-
|`canvas_zoom_resize,<arg>`| zooms in/out, direction and strength are determined by <arg>|
40
+
|`canvas_zoom_resize,<arg>`| zooms in/out. `<arg>` is a multiplier: values > 1.0 zoom in, values < 1.0 zoom out (e.g. `1.4` to zoom in, `0.6` to zoom out).|
41
+
|`canvas_pan,<dx>,<dy>`| pans the viewport by `<dx>,<dy>` pixels in canvas coordinates. Use `axisbind` for directional panning with keyboard.|
34
42
|`canvas_fill_viewport`| resizes the currently focused window to make it fill up the entire current viewport|
35
43
|`canvas_centerview`| moves the viewport to center the currently focused window|
36
44
|`canvas_drag_pan`| enters canvas drag-pan mode (use with `mousebind` to bind to a mouse button)|
@@ -76,8 +84,41 @@ Set anchors appear as color-coded dots on the minimap (red, orange, yellow, gree
76
84
77
85
> **Note:** Anchors are stored in memory only and reset when the compositor restarts. Zoom is not affected by anchors — only the pan position is saved and restored.
78
86
87
+
### Recommended keybind setup
88
+
89
+
```ini
90
+
# Canvas navigation
91
+
mousebind = ALT, BTN_MIDDLE, canvas_drag_pan
92
+
bind = SUPER, SPACE, canvas_centerview
93
+
bind = SUPER, i, canvas_fill_viewport
94
+
bind = SUPER, o, toggleminimap
95
+
bind = SUPER, p, canvas_overview_toggle
96
+
97
+
# Zoom (via axisbind for smooth scrolling)
98
+
axisbind = SUPER, UP, canvas_zoom_resize, 1.4
99
+
axisbind = SUPER, DOWN, canvas_zoom_resize, 0.6
100
+
101
+
# Tiling
102
+
canvas_tiling = 5
103
+
canvas_tiling_gap = 5
104
+
canvas_pan_on_kill = 1
105
+
```
106
+
107
+
### Touch & touchpad gestures
108
+
109
+
Canvas supports touch and touchpad gestures out of the box:
110
+
111
+
|gesture|action|
112
+
|:---|:---|
113
+
|3-finger drag| pan the viewport |
114
+
|2-finger pinch| zoom in/out |
115
+
116
+
These are always active on canvas layouts and do not require additional config.
117
+
79
118
80
119
## Dwindle
81
120
82
-
The `dwindle` layout as known from WMs like bspwm and hyprland.Creating new windows splits the currently focused window either horizontally or vertically depending on its proportions.
121
+
The `dwindle` layout as known from WMs like bspwm and Hyprland. Windows are arranged in a binary tree: creating a new window splits the currently focused window either horizontally or vertically, alternating based on the window's proportions (wider windows split vertically, taller windows split horizontally).
122
+
123
+
Closing a window removes its leaf from the tree and the sibling takes over the freed space. Swapping windows exchanges their positions in the tree while preserving the split structure.
0 commit comments