Moom: Window Management Rethought

One thing that the latest version of Windows does well is managing application windows. With easy keyboard shortcuts you can flip through visual representations of each of your open programs and instantly resize or move windows. There are several Mac applications available that emulate some of these features, a number of which we’ve reviewed in the past.

Moom is an interesting new option, offered by Many Tricks, a small independent company that produces several very good Mac apps. I’ve long relied on their Witch to improve OS X’s built-in app switching, and I use Desktop Curtain whenever I need to cover up my messy desktop to take screenshots. Moom takes its name from the conjoining of “Move” and “Zoom”, as these are the two main things you can do with the app.

Join us after the jump to see how Moom works.

Simple functions

Moom allows you to work with keyboard shortcuts or the mouse, or to mix up the two. The simplest way to interact with the app is to mouseover the green resize button at the top-left of most application windows. When you have Moom running, you will usually then see a small palette appear with a number of rectangles representing different window states.

screenshot

Moom hover state

I say ‘usually’ because Moom doesn’t work with every window. For instance, the app I’m using to write this review, iA Writer, appears to be immune.

Each of those rectangles shows the position the window will be shifted to if you click on it: fullscreen, moved to left or right screen edge and filling half the screen, moved to top or bottom edge and filling half the screen. The ‘person’ shape on the left drops down the custom controls menu, which I’ll return to shortly.

Holding down the Option key when Moom’s control palette is showing changes the control rectangles so that they look like this:

screenshot

Hold down option to see more sizes

As you’d expect, these controls will centre your window onscreen, or change it to quarter-screen size and move it to your choice of screen corners.

More control

By switching on the control to ‘Enable Move & Zoom grid…’ in Moom’s Mouse preferences, you get more granular and per-use control of how the app works. Now when you mouseover the resize button, along with the preset window size and position control you’ll also see a grid.

screenshot

Use the grid for manual sizing

Clicking and dragging on the grid will display a shadow outline of your window’s new dimensions and position, and when you release the mouse, the window will ‘moom’ into that space.

screenshot

Resizing a window

Another important setting in Preferences is ‘Enable access to custom controls’. When this is ticked, you’ll see the figure outline on the left of the palette, as in the screenshots above. Custom controls allow you to set your own window triggers and responses. Through the Custom panel of Preferences, you can define actions and keyboard shortcuts that can specify exactly where you want your windows to move to, what size they should be, or particular arrangements they should assume.

Keyboard mode

The Keyboard panel in Preferences allows you to set up a shortcut to enter keyboard control mode.

screenshot

Keyboard shortcuts

You can also select whether or not a cheat sheet is displayed, and whether or not double-tapping the shortcut shows a screen grid (which gives you the same advantages of grid control as above, but by keyboard shortcut).

screenshot

A visual cheatcheet for shortcuts

The cheat sheet here is self-explanatory, and a little bit of playing around with combinations of keys will quickly demonstrate how easy it is to do everything that’s available in Mouse mode without lifting your fingers from the keyboard.

How Was It?

I’ve used SizeUp for a while now. Although it’s great having this kind of control of windows when I need it, most of the time I forget that the app is even running. I also know that when I work on PCs running Windows 7, I usually forget that these controls are available. But whether in Windows or via SizeUp on my MacBook, I’m always really pleased when I suddenly remember what’s possible, especially since that memory often solves an issue or simplifies a process.

In theory, Moom is just the same. Once it’s set up, it runs quietly in the background, and is there whenever you need to alter a window’s position or size, whether you choose to use the keyboard or mouse to do so.

However, I’ve had a few problems with Moom. You may have noticed in the full screen screenshots above that I’ve had both Activity Monitor and Console running while I’ve been writing this review. That’s because Moom has frozen so many times, and I’ve needed to periodically kill it in Activity Monitor, and then read through the Console’s logs to confirm that something is up with Moom. Now, I’m no techie, so I can’t make much of the logs, but I certainly know enough to see that logs are being written, and that Console is recording errors with Moom (all variations of CGContext errors, in case that means anything to you). Could these be issues with my old MacBook’s graphics card? What I see is that it’s impossible for me to open up Moom’s Preferences and then click through the different sections without the app freezing.

That makes it really difficult for me to give Moom a score. Once I’ve set it up as I want, I can forget about it and enjoy the fact that it works straightforwardly and well, and doesn’t seem to freeze. But if I ever want to change anything or add new custom rules, I know I’m in for instability and app freezes. All of this adds up to me deciding to stick with SizeUp. If you don’t already have an app that adds similar functionality to your Mac, and you’re interested to try one, perhaps it’s worth the few bucks that Moom cost. As I said, it works fine most of the time, so long as I don’t try to change anything.

What Do You Think?

Your mileage, of course, may vary. If you’ve tried Moom, did you encounter similar issues? And, in general, is this a class of apps that you’d be interested in running?

Leave a Reply

Your email address will not be published. Required fields are marked *