Skip to content

Adds support for infinite and free_infinite layouts and some related binds and config parameters - #1119

Open
patrick-nonedev wants to merge 4 commits into
mangowm:mainfrom
patrick-nonedev:infinite-canvas-layout
Open

Adds support for infinite and free_infinite layouts and some related binds and config parameters#1119
patrick-nonedev wants to merge 4 commits into
mangowm:mainfrom
patrick-nonedev:infinite-canvas-layout

Conversation

@patrick-nonedev

@patrick-nonedev patrick-nonedev commented Jul 4, 2026

Copy link
Copy Markdown

infinite-canvas.md

Summary

This PR introduces two new infinite canvas layouts:

  • infinite: a rigid infinite canvas where windows are attracted toward the monitor center while avoiding collisions.
  • free_infinite: a free-form infinite canvas where windows preserve their position and do not interact.

Features

  • Added support for scrolling the canvas in all four directions.
  • Added helpers to center the canvas on either the focused window or the centroid of all visible windows.
  • Automatic follow-focus centering when switching focus on infinite layouts.
  • Added the new_window_scale configuration option to control the initial size of newly created windows.
  • Updated resize() to skip monitor bounds on infinite layouts, allowing windows to exist anywhere on the canvas.
  • Added documentation for the new layouts, configuration options, keybindings, and a complete configuration example.

Example configuration

# Infinite canvas layouts
bind=SUPER+SHIFT,i,setlayout,infinite
bind=SUPER+ALT,i,setlayout,free_infinite

# Canvas navigation
bind=SUPER+CTRL+ALT,l,scroll_left
bind=SUPER+CTRL+ALT,h,scroll_right
bind=SUPER+CTRL+ALT,j,scroll_up
bind=SUPER+CTRL+ALT,k,scroll_down

# Canvas helpers
bind=SUPER+CTRL+ALT,Down,home_canvas_wrapper
bind=SUPER+CTRL,Left,center_focused_wrapper

# Optional: scale newly created windows
new_window_scale = 0.75

Notes

This is my first contribution to Mango, so I'd really appreciate any feedback or suggestions. Thanks for taking the time to review it!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant