Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/mangowm/mango/llms.txt

Use this file to discover all available pages before exploring further.

Understanding Tags

Tags in Mango are similar to workspaces or virtual desktops in other window managers, but more flexible:
  • Windows can be assigned to multiple tags simultaneously
  • You can view multiple tags at once
  • Each monitor maintains its own tag selection
  • Tags are numbered 1-9 by default

Tag Viewing Commands

view (bind_to_view)

Switch to a specific tag.
arg->ui
uint32_t
required
Tag number (1-9) or tag mask
arg->i
int
Additional flags for behavior
Examples:
bind=Ctrl,1,view,1,0
bind=Ctrl,2,view,2,0
bind=Ctrl,3,view,3,0
...
bind=Ctrl,9,view,9,0
Behavior:
  • Switches to the specified tag (workspace)
  • If already on that tag and view_current_to_back=1, switches to previous tag
  • Hides windows from other tags
  • Shows windows assigned to the new tag
  • Maintains tag history for easy switching

viewtoleft

Switch to the tag on the left (previous tag).
arg->i
int
Additional flags
Example:
bind=SUPER,Left,viewtoleft,0
Behavior:
  • Switches to previous tag (n-1)
  • Does not wrap around (stops at tag 1)
  • Does not work in overview mode
  • Does not work if viewing all tags (tag 0)

viewtoright

Switch to the tag on the right (next tag).
arg->i
int
Additional flags
Example:
bind=SUPER,Right,viewtoright,0
Behavior:
  • Switches to next tag (n+1)
  • Does not wrap around (stops at tag 9)
  • Does not work in overview mode
  • Does not work if viewing all tags

viewtoleft_have_client

Switch to the previous tag that has windows.
arg->i
int
Additional flags
Example:
bind=CTRL,Left,viewtoleft_have_client,0
Behavior:
  • Searches leftward for a tag with windows
  • Skips empty tags
  • Stops at tag 1
  • Does not work in overview mode
  • Useful for quickly navigating between active workspaces

viewtoright_have_client

Switch to the next tag that has windows.
arg->i
int
Additional flags
Example:
bind=CTRL,Right,viewtoright_have_client,0
Behavior:
  • Searches rightward for a tag with windows
  • Skips empty tags
  • Stops at tag 9
  • Does not work in overview mode
  • Useful for quickly navigating between active workspaces

toggleview

Toggle visibility of a tag (view multiple tags).
arg->ui
uint32_t
required
Tag number to toggle (0 for all tags)
Example:
bind=SUPER,1,toggleview,1
bind=SUPER,2,toggleview,2
Behavior:
  • Adds or removes tag from current view
  • Allows viewing multiple tags simultaneously
  • Pass 0 to toggle all tags
  • Useful for monitoring multiple workspaces
  • Does not change if result would show no tags

comboview

Combine multiple tags into view.
arg->ui
uint32_t
required
Tag mask to add to view
Example:
bind=SUPER+CTRL,1,comboview,1
Behavior:
  • First invocation switches to specified tag
  • Subsequent invocations add tags to view
  • Creates custom workspace combinations
  • Resets on single tag view

viewcrossmon

Switch to a tag on a different monitor.
arg->v
string
required
Monitor name/spec
arg->ui
uint32_t
Tag number
Example:
bind=SUPER+ALT,1,viewcrossmon,HDMI-A-1,1
Behavior:
  • Focuses specified monitor
  • Switches to specified tag on that monitor
  • Useful for multi-monitor setups

Window Tagging Commands

tag

Move focused window to a specific tag and follow it.
arg->ui
uint32_t
required
Tag number (1-9) or tag mask
arg->i
int
Additional flags
Examples:
bind=Alt,1,tag,1,0
bind=Alt,2,tag,2,0
...
bind=Alt,9,tag,9,0
Behavior:
  • Moves focused window to specified tag
  • Switches view to that tag (follows window)
  • Exits scroller stack if window was in one
  • Clears fullscreen state of conflicting windows
  • Updates tag status and arrangement

tagsilent

Move focused window to a specific tag without following it.
arg->ui
uint32_t
required
Tag number (1-9) or tag mask
Example:
bind=Alt+Shift,1,tagsilent,1
Behavior:
  • Moves window to specified tag
  • Does NOT switch view to that tag
  • Useful for organizing windows without disrupting workflow
  • Window disappears from current view
  • Focuses next window in current tag

tagtoleft

Move focused window to previous tag and follow it.
arg->i
int
Additional flags
Example:
bind=CTRL+SUPER,Left,tagtoleft,0
Behavior:
  • Moves window to tag n-1
  • Switches view to that tag
  • Stops at tag 1 (does not wrap)
  • Only works if currently viewing exactly one tag

tagtoright

Move focused window to next tag and follow it.
arg->i
int
Additional flags
Example:
bind=CTRL+SUPER,Right,tagtoright,0
Behavior:
  • Moves window to tag n+1
  • Switches view to that tag
  • Stops at tag 9 (does not wrap)
  • Only works if currently viewing exactly one tag

toggletag

Toggle window’s assignment to a tag.
arg->ui
uint32_t
required
Tag number to toggle (INT_MIN for all tags)
Example:
bind=SUPER+SHIFT,1,toggletag,1
Behavior:
  • Adds or removes tag from window’s tag assignment
  • Window can be visible on multiple tags
  • Pass INT_MIN to toggle between current tag and all tags
  • Useful for making windows appear in multiple workspaces
  • Does not change if result would assign no tags

tagmon

Move focused window to a different monitor.
arg->i
direction
required
Direction: LEFT, RIGHT, or monitor name via arg->v
arg->v
string
Monitor name/spec
arg->ui
uint32_t
Tag number on target monitor (0 to preserve current tags)
arg->i2
int
Flag: 1 to preserve tags, 0 to use arg->ui
Examples:
bind=SUPER+Alt,Left,tagmon,left
bind=SUPER+Alt,Right,tagmon,right
Behavior:
  • Moves window to specified monitor
  • Optionally changes window’s tag on target monitor
  • Switches view to target monitor and tag
  • Adjusts window size proportionally for new monitor
  • Centers floating windows on target monitor
  • Warps cursor if warpcursor=1

tagcrossmon

Move window to a tag on a different monitor.
arg->v
string
required
Monitor name/spec
arg->ui
uint32_t
Tag number
Example:
bind=SUPER+CTRL,1,tagcrossmon,HDMI-A-1,1
Behavior:
  • If monitor matches current monitor, acts like tag
  • Otherwise moves window to specified monitor and tag
  • Combines monitor switch with tag assignment

Overview Mode

toggleoverview

Toggle overview mode (show all windows).
arg->i
int
Mode flag (1 for tab mode)
Example:
bind=ALT,Tab,toggleoverview,
Behavior:
  • Shows all windows across all tags in a grid
  • Temporarily exits floating and fullscreen states
  • Click or focus window to exit overview and switch to that tag
  • Backs up window states and restores them on exit
  • In tab mode with ov_tab_mode=1, cycles through windows
  • Does not activate if no windows visible on monitor
  • Maintains tag history for proper restoration
Configuration:
hotarea_size=10           # Size of hot corners
enable_hotarea=1          # Enable hot corner activation
ov_tab_mode=0            # Tab cycling mode
overviewgappi=5          # Inner gaps in overview
overviewgappo=30         # Outer gaps in overview

Tag Configuration

Tags are configured per-monitor in config.conf:
# Set default layout for each tag
tagrule=id:1,layout_name:tile
tagrule=id:2,layout_name:scroller
tagrule=id:3,layout_name:grid
tagrule=id:4,layout_name:tile
tagrule=id:5,layout_name:tile
tagrule=id:6,layout_name:tile
tagrule=id:7,layout_name:tile
tagrule=id:8,layout_name:tile
tagrule=id:9,layout_name:tile

Advanced Tag Features

Cross-Tag Focus

Enable automatic tag switching when focusing:
focus_cross_tag=1      # Switch tags when focusing in direction
focus_cross_monitor=1  # Switch monitors when focusing

View History

Mango maintains view history per monitor:
  • Previous tag is tracked via pertag->prevtag
  • Pressing current tag again returns to previous (if view_current_to_back=1)

See Also