Battling Window Management on macOS with Amethyst
I’ve been using Amethyst, a tiling window manager for macOS, for a few years now, and it’s been very helpful for managing my workflows day-to-day. It allows me to keep my windows organized and maximize my screen real estate, which is especially useful since I spend most of my day working in front of a 6K display.
Amethyst, minimized the need to jump between Spaces or use Mission Control to find the window I need, as they are arranged such that no one window is over another. I can easily switch between setups, such as a “focused” writing and research workflow with a main task and a few reference windows, or a multi-tasking developing and operations workflow, with equally focused windows between the IDE, browser, or terminal.
I still use Spaces to a small degree as Amethyst will allow for different layouts for different Spaces, so switching “modes” is just a four-finger swipe away.
While Amethyst does come with a few built-in layouts, I haven’t found them to suit my specific needs. Fortunately, it supports custom layouts with a simple JavaScript syntax. I’ve shared my Four Corners layout in the Amethyst repository before. I’ve continued to refine it and have created an additional layout called Center Focus for my research and writing workflow. I thought it would be easier to demonstrate how these layouts work with some screenshots, so I’ve created this post.
Four Corners Layout
This is the original custom layout I built for Amethyst. It divides the screen into a two-by-two grid and maximizes the use of the screen for any number of windows.
If only one window is open, it takes up the entire space of all four quadrants. This layout is particularly useful when I’m screen sharing, as it’s a common aspect ratio.
If two windows are open, they equally occupy the left and right sides of the screen. This layout is ideal for my daily driver routine when developing.
If three windows are open, the first window takes up the full left side of the screen, while the remaining two windows split the right side of the screen vertically.
If four windows are open, each quadrant of the screen is consumed by a different window. Above four windows, the bottom left quadrant splits vertically, and the remaining windows consume the remaining windows.
Get the layout code here.
Center Focus Layout
This is my newer layout because I’ve shifted my focus to writing and research. I found that having my primary window on the left of the screen or consuming the entire 6K display was jarring.
This layout divides the screen into a four-by-two (horizontal x vertical) grid. The main focus window occupies the center two-by-two sections, leaving the remaining windows to consume the left and right-hand sides. Essentially, the focus window is twice as wide as the remaining windows.
Unlike the Four Corners layout, there’s space where the desktop is revealed when there aren’t too many windows taking up the space. I found that trying to vertically maximize windows on the sides resulted in very irregular aspect ratios and weren’t very useful. Instead, they behave similarly to the 4+ window arrangement of the Four Corners and take up half the screen’s height (or less in the bottom right corner).
Get the layout code here.
Small Screen Mode
Occasionally, I prefer working directly from my MacBook instead, where these layouts fail to work well. A 13-inch screen lacks the necessary real estate to be effectively divided into four by two sections, as seen in the Center Focus layout. Moreover, rapidly splitting vertically in the Four Corners layout forces me to spend more time managing windows than actually working on my tasks.
Fortunately, since Amethyst allows me to access the window’s screen size through the custom template library, I don’t have to switch layouts when switching between displays. It behaves similarly to the Four Corners layout, except that the first window never gets split vertically.
Installing Custom Layouts
To install a custom layout to Amethyst, open Finder and navigate to Go > Go to Folder… and enter ~/Library/Application Support/Amethyst/Layouts/
. Download the desired layouts and move them to the Layouts folder, ensuring the end in .js
. You may need to make the Layouts
directory yourself.
Once that’s done you can open the Amethyst preferences, click the +
button at the bottom of the list, select the desired layout, and relaunch Amethyst once you’re done.
If you’re entirely new to Amethyst, I suggest following the documentation to get started.
I hope these layouts help you with your window management and workflows or inspire you to create your own!