A Mac Developer’s New Best Friend

Here’s emmetapp, the next window manager for macOS

Richard So
Geek Culture
4 min readJul 23, 2021

--

Image courtesy of emmetapp.com

I’ve been enjoying my new M1 MacBook Pro a lot recently (pssst if you’re a developer and need help setting yours up, head over to this article I previously wrote!), but there’s still a thing that bugs me to this day…

Window management in stock macOS is a nightmare.

The Problem

I’m not even exaggerating — macOS window management is actually worse than Windoze. To name a few, it doesn’t natively support window snapping, its Command-Tab app switcher is still headache-inducing after several months of use, and macOS’s definition of “maximize” is actually to put in full screen.

Stuff like Magnet and BetterSnapTool help you arrange windows in macOS, but that means setting/memorizing a full sheet of keyboard shortcuts if you want to use them to their full potential — and it doesn’t solve the clumsy app switcher. Amethyst, a pretty legit tiling window manager inspired by xmonad, is quite good with window management, though this “tiling” feature is also a double-edged sword for having a huge learning curve and occasional incompatibilities with conventional macOS apps.

So with all that said, is there really a macOS window manager that is both intuitive and powerful?

A Promising Solution?

It turns out that my good friend and fellow programmer Edis Gonuler was also frustrated over macOS’s lackluster window management. So, like all competent software developers, he created a solution by himself: emmetapp.

“The window manager you dream about.”

This is emmetapp’s catchphrase: a pretty bold statement if you’d ask me. Edis personally told me that he wanted emmetapp to become a be-all and end-all of macOS window management, especially for developers and power users looking to boost their productivity. Well, let’s see how his claims stack up to what emmetapp can do.

How does emmetapp work?

Groups in emmetapp. Image courtesy of emmetapp.com

One major factor that sets emmetapp from its alternatives is the window grouping system it follows: windows that are stacked together in the workspace represent a window “group”. Instead of a pre-defined height or width that a window is “snapped” into (for apps like Amethyst or Magnet), emmetapp lets the user choose the size of a window group. Groups can be created by selecting a window in the emmetapp preferences menu — this sets the size of the new group to the selected window.

With a set keybinding, users can cycle between app windows exclusively within the perimeter (“box”) of the group. Additionally, by pressing the Shift key with a group binding, users can resize the active window to cover that group. Let’s look at a short demonstration, shall we?

The preferences menu for emmetapp.

Of course, you are able to set multiple groups and switch focus between them. Turns out that emmetapp works for multi-monitor setups too!

Because of how this grouping system works, you have more control over your apps with only a fraction of keybindings and setup time. Just look at how simple this preferences menu is!

Seeing emmetapp in full action

Pushing the limits for what emmetapp can do (watch until the very end)!

Here, I put emmetapp to the test by running a typical web development workload. One huge perk I realized while using emmetapp is its ability to preserve a general layout while quickly switching and cycling windows. For instance, in the GIF above, emmetapp allows me the freedom of stacking and cycling between some free-floating apps behind my code editor while keeping it split at the left side of my screen. There’s no clunky app switcher or tiling behavior to get used to, and making new groups is pretty simple whenever I need to. If you want to see more, here’s a more comprehensive video demo of emmetapp:

Verdict: emmetapp is Valid 💯

Within my week of testing, I’ve found emmetapp to be almost exactly what I’m looking for as the “next macOS window manager.” Its robust window grouping system sets it apart from the rest, allowing for more versatile workflows that treat your screen real estate like partitioned containers for different app windows.

As a cherry on top, emmetapp is quite easy to pick up and use, even if you haven’t started using a third-party macOS window manager before! With all being said, I truly recommend that you check out emmetapp from Edis and take your first step in supercharging your development workflow.

If you are using emmetapp, consider reading this tutorial/documentation write-up by Edis himself on this app: https://emmetapp.notion.site/emmetapp/Documentation-3dbaba8b8d3f4818b9e49b22cce605a7

Let me know your thoughts and comments below, and until next time!

--

--

Richard So
Geek Culture

https://sorichard.com | BS/MS CS @ Georgia Tech, Class of ’25. Pursuing everything code. Always learning!