- Grid, resize, and rearrange all windows on a screen automatically with one keyboard shorcut
- Maximize window sizes on the screen using all available screen real estate
- Gather and organize visible windows from multiple monitors (Coming soon)
Requires macOS v11.5 or later.
Yes, no question. Rectangle and Magnet contain more functionality and customization options.
Assembl strips all the complexity from those apps and provides one key that organizes all visible windows instead of one at a time. So, this app could be for you if you want a simplified window manager.
Plus, I made this app almost entirely by dissecting the open-source code from the Rectangle repository to learn Swift (I usually write Typescript). So, it's mostly the same app with less functionality. (Thank you, Rectangle folks, I learned so much).
I personally found it tedious to organize my windows one at a time the way Rectangle and Magnet do. Plus, I could never remember the keyboard shortcuts. Assembl intentionally strips all that.
So, the only improvements I will consider would be ones that improve the experience of organizing all windows at once, with one keyboard shortcut, to one screen.
This may include:
- Gather all windows from all screens instead of just the screen the mouse is on
- Reset all the windows to their previous positions and sizes
- Ignore selected screens from being queried
- Tiling screens like folder tabs vs gridding them like stacked boxes
Assembl, Magnet, and Rectangle all resize windows using the Accessibility API. It's a fairly hacky approach that developers have been doing since before 2010, but Apple doesn't provide any other way to manage windows. Since 2012, Apple no longer allows the Accessibility API for apps in the App Store because they must be sandboxed.
This is why Rectangle isn't in the App Store, as well. Magnet was approved by Apple before the change in 2012 and therefore gets to be the only window manager app in the App Store with no possibility for competition in perpetuity.
Assembl has to compete with quite a lot of variables when organizing windows. The two largest issues are:
- Non-resizable windows
- Windows with large minimum heights or widths
What Assembl does under the hood is try to make the window the correct size to fit perfectly with other windows in a grid. If Assembl can't resize the window to the intended size, the window gets put in the same position on the screen as if it is that size and allows it to overlap with other windows.
In testing, overlapping windows felt like the best user experiences while still allowing access to the toolbars vs sacrificing other window sizes to accommodate for windows with large minimum widths/heights (or in cases where the window can't resize at all).
- KeyboardShortcuts - Add user-customizable global keyboard shortcuts to your macOS app
- LaunchAtLogin - Add “Launch at Login” functionality to your macOS app in seconds
- SwiftUIWindow - Open a new macOS (10.12+) window with SwiftUI contents.
I like making things. Check out what I'm up to lately: