Managing multiple windows on your Mac is a cumbersome task. Since they tend to overlap, your display quickly gets cluttered you lose valuable workspace. Unfortunately, the built-in window manager in macOS doesn't offer many features to solve this problem.
However, with third-party window management tools for the Mac, you can organize and resize windows with built-in shortcuts, mouse clicks, and gestures. Here are some of the best window management apps for macOS to keep your desktop organized.
Magnet is one of the renowned window management apps for Mac. It lets you snap different app windows using keyboard shortcuts, drag-and-drop, and from the menu bar. You can snap your windows in various arrangements, like corner snapping, vertical and horizontal halving, and more. It works like a charm and is helpful, especially if you manage multiple Mac monitors.
Once done, you can restore all the windows to their original positions in one click. Moreover, you can also exclude some apps to prevent them from accidental snapping when dragging them around. It has predefined shortcuts, which you can remap according to your preferences.
Magnet supports up to six external displays in different orientations, including vertical orientation. You can get Magnet from the App Store for a $7.99 one-time fee, which is pretty reasonable, especially if you miss Windows 11's Snap feature.
BetterSnapTool is one of the oldest and closest alternatives to Magnet for a fraction of the price. You can simply drag and drop windows to snap them to the corner or side by side. Moreover, you can customize these snapping areas and window sizes to match your requirements.
If you find dragging with the mouse uncomfortable or work with a trackpad, you can assign custom keyboard shortcuts to snap windows quickly. Furthermore, you can access all the shortcuts from the menu bar if you prefer it.
If you're looking for something open-source, go with the Rectangle app. It offers all the features that a window management tool should have. You can arrange and resize windows through keyboard shortcuts, drag-and-drop gestures, or from the menu bar.
However, it might take some time for you to get used to the shortcuts in the Rectangle app since there are many. Furthermore, you can also add some of your apps to exceptions if you want to keep them away from Rectangle's shortcuts.
Besides, Rectangle is free to download with most of the required features. But you can get Rectangle Pro for $9.99 to unlock even more features, like custom shortcuts, snapping apps with one shortcut, and more.
If you don't like to drag and drop windows to arrange them all the time, you should try Amethyst. Amethyst has predefined layouts that you can cycle through a keyboard shortcut, which is, by default, Option + Shift + Space bar.
It works better if you have an external or dual monitor setup. Amethyst is an open-source window management tool that is entirely free to use. You can download it through its website or install it via Homebrew on your Mac.
Veer is a lightweight window manager for your Mac. It lets you drag and drop windows or use keyboard shortcuts to arrange them. What makes it different is that you can even use the WASD keys instead of the arrow keys for organizing windows.
However, Veer has limited window management options compared to other apps. You can only snap windows in 12 different variations with the provided shortcuts. Moreover, the options in the macOS menu bar only show the shortcuts greyed out, and you can't select them either. You can only access them by pressing the key combination, which is Control + Command, by default.
If you use the trackpad on the MacBook or an external trackpad, you'll love Swish. It works primarily with trackpad gestures and has more than 30 gestures, but not entirely customizable. However, you can turn off the ones that you don't like or use them to avoid accidental triggers.
Furthermore, it is the only tool in macOS that aligns and divides windows using a pixel-perfect grid. Swish automatically detects multi-monitor setups (both vertical and horizontal) and lets you swap multiple windows within them with a single flick. They're very similar to Mac's trackpad gestures, so you won't be able to tell much difference.
Moom lets you resize your window differently. Instead of putting everything in the menu bar, the window management options reside inside the green button. To view those different arrangements, you'll have to press the Option key while hovering your mouse over the green button.
Furthermore, you can assign keyboard shortcuts, enable mouse gestures for quick snapping, and many more. Apart from that, you can also run Moom as a native application or even from the menu bar, as other window management apps do.
If you're particular about having windows with a specific layout on a desktop space, we recommend you use Moom. You can save time on arranging and resizing windows on an ultrawide monitor. And if you use your trackpad more, we recommend going with Swish.
Whether you use a multiple monitor setup or just your Mac on a bigger display, you can use these Mac window management apps to improve productivity, allowing you to multitask quickly. You can look at multiple things side by side and drag items between them seamlessly, saving you a lot of time in the long run.
Managing windows can be crucial, especially if you're switching from a Windows PC. However, some apps can make your Mac feel like a Windows machine, which can be pretty helpful when trying to get the hang of a new operating system.
Sajid is an Electronics and Communications Engineering graduate who loves writing about tech. He's primarily interested in writing about Android, iOS, Mac, and Windows. When he's not writing, you'll find him watching Anime or Marvel.
Some of this is deserved, but mostly this is a consequence of combining a very flexible and granular layout system with rather coarse controls. This leaves the door open to creating and using tools for handling windows that employ and provide better metaphors and affordances.
The result is that you end up with hundreds of buffers and start looking for ways to group them, isolate the groups and then preserve them. This is tied to window management, but only in the sense that your arrangement of windows is part of the state you want to preserve. This is a finicky and complex subject, and well beyond the scope of this write-up. Take your pick: between tab-bar, tabspaces, eyebrowse, tab-bookmark, desktop.el, persp-mode.el, perspective, project-tab-groups, beframe and activities.el there is no paucity of projects to help you do this.
The mouse is indeed the most natural way to navigate windows. Without stepping into contentious discussions on economy of motion, RSI trouble or personal preferences, the main problem with the mouse approach is that the lack of a learning curve (relative to the keyboard) is balanced by the lack of expressivity (relative to the keyboard).
If other-window is the alt-tab of Emacs, Windmove is the tiling window manager equivalent. It makes the spatial arrangement of windows in the frame relevant to the selection, which I imagine is the most natural way to do it short of using the mouse.
The fork: movement to the right in this schematic depends on what window is exactly to the right of the cursor. Calling windmove-right from near the top of buffer 1 moves the focus to buffer 2, starting near the bottom moves the focus to 3.
You can also swap the buffers of windows directionally with Windmove, a handy way of rearranging windows on the frameAgain, Windmove is how evil-mode does this.. The relevant commands are windmove-swap-states-left, -right, -up and -down.
These are bound to C-x w ^ t and C-x w ^ f, which sheesh. You can do these as ace-window dispatch actions instead, since you can do anything with ace-window. Alternatively you can rebind these to the slightly saner C-x w t and C-x w f, which are currently unbound. I prefer to just use the mouse when I need to tear off a window:
Keybindings involving specific window actions are grouped into prefixes, like a menu. C-x 4, the ctl-x-4-map broadly contains commands that use the other-window. For instance, C-x 4 . jumps to the definition of the thing at point (like the default M-.), but in the other-window. Most commands in the ctl-x-5-map create a new frame. Tab-bar actions are grouped under C-x t.
An observation: no matter how many simultaneous windows you have or require on screen, most of the time you only need to switch between two of them. Examples include the Code & REPL setup, the Code & Grep (search results) setup, and the Prose & Notes setup. The Listing & Item pattern is an example outside of programming or prose: this includes a calendar or agenda window with an expanded entry window, or an email inbox window with an opened email.
Another modification that you might find intuitive is to cycle through windows in order of last use instead of in clockwise spatial order, similar to alt-tab or how some web browsers cycle through tabs. This is possible with some elbow grease, but this work has been done for us by the switchy-window package, which provides a switchy-window substitute command for other-window.
ace-window is to windows what completing-read is to lists of strings, or Avy to characters on screen. This makes it ideal as the first two of a three-step process to invoke any action on any window: the filter and selection steps:
Handy as it is, the other-window-prefix system has the same problem as the other-window command: it enforces a rigid cyclic ordering on the window it will pick, and about the most we can consistently expect is that the active window will not be taken over by the next command. We can do better.
Note that the Man elisp library actually offers a suite of options to customize where it should be displayed, in the fiddly way typical of all things Emacs. We can sidestep that whole undertaking here.
7fc3f7cf58