How-to: Fix the Moom snap and Desktops issue

As cool as Moom 3’s new ‘snap to edges’ feature is, there’s one annoying issue that we can’t solve within Moom: if you use Desktops (Spaces in 10.6), the drag-to-edge action is used by OS X to move windows between Desktops/Spaces. If you also use Moom’s snap to edges feature, there’s an obvious issue, wherein a window may both resize and be moved to another Desktop/Space. Not good, obviously.

Unfortunately, we have no control over this action, as it’s owned by OS X. Nor do you, the user, have any control over it: it’s always enabled, with no pref to disable it. Thankfully, there is a way around the issue, such that you can use both Moom’s ‘snap to edges’ and OS X’s ‘drag to new Desktop/Space’ features together.

The workaround is to change OS X’s activation delay for the ‘drag to new Desktop/Space’ feature. Do this by opening Terminal, pasting the following line, and then pressing Return:

defaults write workspaces-edge-delay -float 10

You won’t see any output, just the cursor on a new blank line. Once you see that, paste this into Terminal, and press Return:

killall Dock

These two commands work like this. The first sets the delay before OS X’s ‘drag to new Desktop/Space’ feature activates to 10 seconds. The second line restarts the Dock, as otherwise, the change you’ve just made won’t take effect (the Dock controls the feature). You can experiment with values other than 10, but you want a delay that’s long enough to let you use snap-to-edges without moving to another Desktop/Space. Personally, I find that 5 works well.

(Alternatively, if you want to use Desktops/Spaces, but never ever have the drag-to-edge feature do anything, set a huge value, such as 600, which would require you holding the window against a screen edge for 10 minutes before it moves to another Desktop/Space.)

Once the drag-to-Desktop/Space action does take effect, it will do so showing Moom’s preview of your edge-drag resize. You don’t, however, have to resize the window: just drag it off the screen edge prior to releasing the mouse button, and the window will simply be moved (at its current size) into the new Desktop/Space.

If you ever want to undo this change, just use this Terminal command (followed by Return):

defaults delete workspaces-edge-delay

You’ll also have to repeat the killall Dock command, of course. (This doesn’t remove the drag-to-edges feature, it removes the custom delay value you’ve set.)

A tip of the Many Tricks’ hat to @SmokeyMouse, who found this solution and let us know about it.

Comments are closed.