Macotron

Window management

Built-in plugins tile the focused window with the keyboard, snap a window when you drag it to a screen edge, place it on a grid, switch windows with Option-Tab, and save and restore whole layouts.

Every plugin on this page needs Accessibility. The Window Switcher and Gesture Examples also need Input Monitoring. See Permissions.

Tiling hotkeys

The Window Controls plugin binds these hotkeys. Change any of them in Settings → Plugins → Window Controls.

HotkeyAction
⌃⌥←Left half
⌃⌥→Right half
⌃⌥↑Top half
⌃⌥↓Bottom half
⌃⌥ReturnFill the screen
⌃⌥CCenter, at 75% of the screen
⌃⌥U ⌃⌥I ⌃⌥J ⌃⌥KTop left, top right, bottom left, bottom right quarter
⌃⌥D ⌃⌥E ⌃⌥FFirst, center, and last third
⌃⌥T ⌃⌥YFirst and last two thirds
⌃⌥⌘→ ⌃⌥⌘←Move to the next or previous display, filling it
⌃⌥SpaceRadial menu: a wheel at the pointer. Click a wedge to tile there.

Press a hotkey again to cycle. A second ⌃⌥← moves the window to the right half, and the thirds keys step through all three thirds. Turn on Cycle through displays to move to the next display at the end of a cycle.

The launcher has Tile Left Half, Tile Right Half, Tile Full Screen, and Radial Menu as commands.

Drag to snap

Drag a window by its title bar to a screen edge or corner. Macotron shows where the window will go, and tiles it when you let go. With the default Halves zones:

Hold Shift while you drag to use the alternate zones, which are Thirds by default. Run Toggle Window Snap from the launcher to turn snapping off or on.

Window Controls settings

SettingDefaultWhat it does
Snap edge (px)20How close to an edge the pointer must be to snap.
Snap corner (px)80How large each corner zone is.
Gap (px)0Space between a tiled window and the screen edge or its neighbor, 0 to 40.
Snap zonesHalvesHalves, Thirds, or Quarters.
Alternate snap keyShiftThe key that switches to the alternate zones. None turns it off.
Alternate snap zonesThirdsZones used while the alternate key is held.
Cycle through displaysOffMove on to the next display when a tiling cycle ends.

Switch windows

The Window Switcher plugin flips through windows, not apps. Hold Option and press Tab. A panel lists the open windows with the previous one selected. Press Tab again to move down, Shift-Tab to move up, and release Option to switch. You can also click a row.

Window Controls adds Switch Window to the launcher. It opens a panel of every window with a filter field. Click a window to bring it forward.

Place on a grid

The Window Quick Grid plugin opens a small panel with a grid that stands for the screen. Press ⌃⌥G or run Place Window, then drag across the cells you want the window to cover. Macotron shows the destination while you drag. The grid is 6 by 6 by default; set Columns, Rows, and Gap in its settings, or change the counts in the panel. A grid can have up to 20 columns and 20 rows.

Save and restore layouts

The Window Layout Save & Restore plugin keeps one layout named Work.

The layout is saved in the plugin's localStorage, so it survives restarts. To keep more layouts, copy the plugin and change its key, or ask your coding agent to add more.

Trackpad gestures

The Gesture Examples plugin tiles the focused window when you swipe with three fingers: left for the left half, right for the right half.

Spaces

The Spaces Controls plugin adds Next Space, which switches to the next Mission Control desktop. It shows a toast with the desktop number each time the space changes.

Write your own

All of these plugins use macotron.window. A tile is a fraction of the screen:

macotron.keyboard.on("Left Two Thirds", "ctrl+opt+shift+left", () => {
  const win = macotron.window.focused();
  if (win) macotron.window.moveToFraction(win.id, { x: 0, y: 0, w: 2 / 3, h: 1, gap: 8 });
});

See also