Unfortunately, no, I am not presenting you with a free version of Windows Layout Manager (WiLMa) for Mac/OSX here. But I will provide you with something that has worked for me along similar lines and was hacked up in a few hours of using AppleScript. I hope it works for you as well as it works for me, if not, blame it on my total inexperience with AppleScript. In fact, I have never touched AppleScript until the other day when I hacked together my first few lines of code and then did the “google programmer” thing by basically solving every little step along the way by looking it up online in a quick and dirty way. But heck, who cares, it worked and I really have no ambition to learn AppleScript. I very much dislike its syntax. As a real software developer it makes my toes curl. 🙂
While I got your attention I want to divert your attention for a short moment to the BetterSnapTool by Andreas Hegenberg. If you are looking for something WiLMa-like (but not quite) I can highly recommend this utility. Get it through the AppStore for a price you just can’t beat. Now, if Andreas would be so kind as to take all the WiLMa features and implement those in BetterSnapTool I would be happy to pay a lot more for it, and so should you!
Now, back to the AppleScript thingie I hacked up to provide myself the much missing WiLMa basic functionality that I have sorely missed on Snow Leopard and Lion, and every other Apple Mac OSX incarnation. You can DOWNLOAD THE SCRIPT RIGHT HERE FROM THIS LINK. Let me talk you through a few details of the script.
There are two basic functions to reposition and size a window; RepositionWindow and RepositionWindowWithName. The reason there are two functions is because the RepositionWindow function takes the window index (or window “number” if you will) as a paramter while the RepositionWindowWithName will take a title string as its parameter. In most cases a window index of 1 will work for most applications and their windows. Sometimes, it does not, and in some other cases (like say, Skype) it is possible the window index will not be consistent. In that case (like the Skype Online Contacts tool window) the WithName function will work just fine.
The bulk of the script defines a few functions, then goes into a series of repositioning/sizing instructions and at the tail end you will find some commented helper functions that are called. These are to help you (through the Events in the AppleScript editor) to show a window name, position, size. The functions are documented in the script so there’s not much more to waste time on.
Note that the script uses an offsetX and offsetY that is used in the actual repositioning process. The reason for that is because I’m lazy and I want to re-use the coordinates for position and size and be able to offset an entire series of function calls to another monitor. The sample script provided here uses the 3 x 30″ screens (at 2560×160 each) so you can probably imagine how those offset values are supposed to work. If you don’t like them, don’t need them, or are worried about performance (ha!) you can take them out.
Generally what I now do is create the scripts for my layouts (which is a bit of a tedious process) and save them in a compiled form and hook them through a folder on my dock for easy and quick access. Whatever you like to do, go right ahead and do it.
Let us know what YOU think!