Stairways Software
Excellence In Software For Over Ten Years – Only with a Mac
Keyboard Maestro 4 is well in to development, and anyone who purchases Keyboard Maestro 3 after May 1 will receive a free upgrade.
Normally I don’t say anything about future versions until they are released, but in an effort to generate a bit of buzz I figured I would show off some of the stuff as it is (more or less) completed.
My aim for version 4 is to be Cocoa buzzword compliant, which means lots of nice swishy user interface features. The engine is essentially complete (in fact it is only a couple API calls off being 64-bit ready, although whether I will ship a 64-bit version remains to be decided).
The engine now has HUD style clipboard history (pictured) and named clipboard switchers, including a search field with lovely animations as you filter clipboard or add or remove clipboard items, as well as image and styled text displays.
Currently I hope to have version 4 out in Q3, but that will depend somewhat on what does and doesn’t make the cut, although I will probably err on the sooner side and ship further features in version 4.1, 4.2 etc as I did for version 3.1 through 3.5.
But there is still plenty more to do, so its back to work for me.
Posted Sunday, May 3, 2009. Permalink. Post a Comment. RSS. Digg This
And now for something completely different, we have released a space war game, Aragom, for the iPhone.
Aragom is a fast paced space war game, reminiscent of the old TRS-80 Star Trek game. The galaxy is being overrun by Aragom and they have already destroy all other defences. Commanding the USS Constellation, you must destroy all the Aragom before they can destroy you, all the bases, or time runs out.
Get Aragom from the App Store or visit the Aragom web site for more details.
Updated Tuesday, February 10, 2009 at 4:41 PM. Permalink. 1 Comments. RSS. Digg This
Something that is relatively tricky to do in Keyboard Maestro is to select menu items from a popup menu. The typical hackish solution is to simulate a click in the menu, followed by simulated keystrokes to select the desired menu item (Insert Text by Typing works well for this), followed by simulating the return key to select the item (or right arrow to drill down into hierarchical menus).
A neat solution is inspired from a MarsEdit tip (in turn inspired by a Macworld tip) which describes how to use the Keyboard & Mouse System Preference to assign key equivalents to any menu in an application, including popup menus. Once you assign a key equivalent it is then a trivial macro action to simulate that keyboard equivalent.
Thanks to Brent Simmons for the post, and also to Rob Griffiths for the original inspiration.
Posted Thursday, February 5, 2009. Permalink. Post a Comment. RSS. Digg This
Congratulations to Michael Kamprath (original author of Keyboard Maestro) on the glowing Wired review of his iPhone game for young kids, I see Ewe.
Well done!
Posted Tuesday, February 3, 2009. Permalink. Post a Comment. RSS. Digg This
Recently, a Keyboard Maestro user asked if Keyboard Maestro could allow windows to be moved around like Windows allows when you press a key combination.
Keyboard Maestro has actions to move and resize windows, so it is an easy task to create a macro group activated by a hot key which then enables its macros, triggered by arrow keys to move the front window around.
Not wanting to leave this as an exercise to the reader, I created a macro group for the Macro Library, so that pressing control-W allows you to move and resize windows - arrow keys nudge by a single pixel, option-arrow keys by 10, shift arrow keys resize and option-shift arrow keys resize by 10.
You can download it from the Macro Library.
Updated Monday, December 29, 2008 at 4:12 PM. Permalink. Post a Comment. RSS. Digg This
As many of you know, Michael Kamprath was the original author of Keyboard Maestro. We acquired it from him in 2004 and since then lots has happened in Michael’s life, including especially getting married and having a baby girl.
Michael’s latest project is an iPhone game, I See Ewe so if you have young kids and would like to see what Michael is up to these days, check it out. It costs $1 and all the ratings are 4-5 stars.
Perhaps a nice Christmas present for the kids?
I think I might follow Michael’s example and write an iPhone game myself - maybe bring back some memories of my old TRS-80 days!
Merry Christmas everyone!
Updated Tuesday, December 23, 2008 at 5:53 PM. Permalink. 1 Comments. RSS. Digg This
Unless you were living under a rock (OK, or living pretty much anywhere else, we really have to work on our PR machine!) you would have heard we released Keyboard Maestro 3.5 last week.
We also released our first iPhone app, Keyboard Maestro Control, which lets you connect to Keyboard Maestro on your Mac and run macros on it from anywhere in the world.
If you combine this with our previous post about controlling to Keynote driven projectors, you could use an iPhone or iPod touch to control your projector as you walked around the room.
One trick I’ve found useful is setting up a macro to launch iTunes - that way you can launch iTunes and then use Apple’s Remote to control it.
Another would be to have your email downloaded to your Mac while you’re on your way to the office.
As usual with Keyboard Maestro, your imagination is often the limit on what it could do to help you!
Posted Sunday, December 14, 2008. Permalink. 1 Comments. RSS. Digg This
I frequently say that the key to getting the most out of Keyboard Maestro is a good imagination. Keyboard Maestro can help with many different tasks, but the help is unique for each situation. Sure, there are some common tasks that most users will share (like inserting preset pieces of text), but when I look at my own macros, many are completely unique to me, things like:
and so on. These are all specific to me and entirely useless to anyone else. But each person has their own set of specific problems and unique solutions.
However, recently I got a request from Bill Jastram at Tualatin Foursquare Church who had a particularly interesting one. He wanted to control Keynote from one Mac and have it simultaneously control another Mac at the other end of the auditorium, which in-turn would control a projector running his presentation.
Bill had already organized the local side with simple macros to control Keynote slides, the trick was to transfer the action to the second Mac controlling the projector. We accomplished this by enabling Keyboard Maestro's web server on the second Mac and creating similar control macros . Then on the first Mac, we added a shell script action to each macro to run curl to make a request to the second Mac to execute the corresponding macro. The end result, Bill changes a Keynote slide on his MacBook presentation, the slide simultaneously changes on the Mac Mini across the auditorium, and the projector projects the change all within one second.
According to Bill: “All we needed was your very useful Keyboard Maestro, a self-contained Airport network (Airport Extreme Base Station), and your curl script to send a command sequence to the Mac Mini. Needless to say, this is a real plus for us, for which we are very grateful.”
More proof that Keyboard Maestro and a little imagination can do amazing things.
Updated Thursday, December 4, 2008 at 3:27 PM. Permalink. Post a Comment. RSS. Digg This
This is an almost trivial, but very useful, macro which types the current clipboard in.
This means it both pastes without styles and also works almost anywhere, including places where paste is not supported like many games or password entry dialogs.
It uses just a single action:
Insert Text ‘%CurrentClipboard%’ by Typing
By default it uses a Status Menu trigger, so it is available easily without the need to remember yet another hot key, although you could trigger it by any means you like.
Updated Monday, November 10, 2008 at 3:01 AM. Permalink. Post a Comment. RSS. Digg This
Alain Damlamian has created a package of macros for TeXShop users. It includes a number of macros for inserting various tamplate text items, such as definition, lemma, proof, etc.
The macros preserve the clipboard in a Named Clipboard, and so these macros require Keyboard Maestro 3.4 to import properly. Version 3.4 added a feature where named clipboards were stored with both a unique ID and a name in export files so they can be imported and the appropriate named clipboards automatically created if they do not already exist.
I have added this macro package to the Macro Library section to our web site.
Thanks for yo Alain for offering this package.
Posted Sunday, September 7, 2008. Permalink. 1 Comments. RSS. Digg This
Bare Bones just released BBEdit 9.0, the latest update to their fantastic text editor and development environment.
I have been beta testing 9 for months on my desktop, and every time I used 8 on my lap top I really noticed the missing new features, which is a great sign for any upgrade.
BBEdit 9 adds projects (which would have been great when I was developing Interarchy in Pascal in BBEdit). It also now allows you to edit in browser windows which is wonderful to finally have.
One interesting new addition that I've used more than I expected is the Scratchpad - which is just an always-saved text window. It's great for putting a copy of code you're about to rewrite, or a few notes, or some statistics. Basically it nicely covers that time frame between clipboard history (minutes or hours) and Yojimbo (permanent storage). Things you might need tomorrow or the next day but not after that.
Great update! Congrats to the Bare Bones team!
Posted Thursday, August 28, 2008. Permalink. Post a Comment. RSS. Digg This
There is a nice article on TechTelic on using Keyboard Maestro to control iTunes and launch applications.
Its always good to see people getting value from Keyboard Maestro.
Posted Wednesday, July 30, 2008. Permalink. Post a Comment. RSS. Digg This
There may be times when you want to perform a variety of related actions using a single AppleScript from multiple macros.
For example, you might have an AppleScript that moves an object triggered by the four arrow keys, with modifiers to specify how much, and so you need to pass the direction and distance to the AppleScript.
Kevin van Haaren recently posted to the Keyboard Maestro Users Group explaining how to easily do this and graciously allowed me to post the details here. Basically, you use the Execute -> Unix Script action to run osascript with the arguments.
In this case, the script for the action might be
osascript ~/Applications/move_object.scpt UP 10
And the AppleScript code would be:
on run argv
set theDirection to (item 1 of argv)
set theAmount to (item 2 of argv)
-- your script using the parameters follows
end run
Note that Kevin ran in to an interesting AppleScript issue where if you executed the script in rapid succession, errors occur as AppleScript opens the script for writing each time to allow it to update the properties. A simple workaround for this is to use plain text for the script and have it compiled each time (there is a performance hit the first time, but it is quite quick after that).
Of course, an alternative would be to just use Execute -> AppleScript text and paste the adjusted script into each macro, but that would mean any change to the script needs to be tediously updated for every macro. Still, this may be another easy way for scripts that rarely change.
My thanks to Kevin for sharing this useful technique.
Posted Sunday, July 27, 2008. Permalink. Post a Comment. RSS. Digg This
Happy iPhone 2 Day to Apple and all our friends releasing iPhone apps.
Since it is iPhone day, it seemed appropriate to mention that you can control your Mac from an iPhone using Keyboard Maestro.
Keyboard Maestro’s built in web server lets you make public macros that anyone can use to access your mac in a very controlled way, as well as letting you login and execute any macro using your username and password. And you can access all of this from your iPhone.
Since macros can execute AppleScripts and shell scripts, that means you can do pretty much anything. For example, you can make the Mac go to sleep if you forgot before you left the office, or enable or disable services for temporary (and hence more secure) access. You could restart misbehaving servers, or have your office Mac check your email or launch applications before you arrive.
As usual with Keyboard Maestro, your imagination is the limit to what you can have it do.
Posted Thursday, July 10, 2008. Permalink. Post a Comment. RSS. Digg This
I am going to try to write a few blog entries about some of my favorite macros.
First in the series is a fairly simple, but frequently useful, macro, Duplicate Line.
I have this macro triggered with control-D in BBEdit and Xcode and use it often when coding.
The macro is quite simple, a sequence of simulated keystrokes to select the current line (command-left arrow, shift-down arrow), Copy, deselect the line (down arrow), Paste, select the pasted line (shift-up arrow), and then restore the clipboard (Set Clipboard to Past Clipboard: 1).
Of course, you don’t want to have to recreate the macros that I describe, so I have also added a new Macro Library section to our web site. If it sounds useful, visit the library and download the Duplicate Line macro.
The library is pretty small so far, but we will be adding some more macros soon - let us know if you have any suggestions for inclusion in the macro library.
Posted Wednesday, July 9, 2008. Permalink. Post a Comment. RSS. Digg This
Keyboard Maestro macros and actions can be executed via AppleEvents which means you can do anything Keyboard Maestro can do from most scripting languages, including AppleScript, perl, python, etc.
To make this even easier, in Keyboard Maestro 3.2, we added a Script pseudo-trigger. When you select it from the New triggers popup menu, it doesn't actually add a trigger, instead it shows you how to trigger the macro from various scripting languages, for example, for AppleScript, it might look like:
tell application "Keyboard Maestro Engine" do script "B39812D2-DDA0-4309-BBA5-C9902FA5B164" -- or: do script "Paste Plain Text" end tell
So your AppleScript (or perl script, or whatever) can now easily perform any macro that you can create in Keyboard Maestro.
It is also possible to execute any action, but that is a little more tricky as you have to send the XML for the action. Still, it is useful if you want to create actions on the fly. See the documentation (or email me) for more details if you are interested in this level of control.
Posted Thursday, July 3, 2008. Permalink. Post a Comment. RSS. Digg This
In versions of Keyboard Maestro before 3.1, when you used Insert Text to paste in some text, the current clipboard was preserved. The way this was done was:
The problem with this is the “unspecified amount of time”. If it is too short, the old clipboard would be pasted. If it is too long, you might have time to copy something new (and then lose that clipboard!). Typically this manifested itself on slower computers or slower applications where the old clipboard was sometimes pasted instead of the correct text. And nobody likes like inconsistent behaviour!
So in 3.1, we:
If you quite liked the old behaviour, you now have three options:
a) Accept that this is how the macro works, and use the new Clipboard History features (Clipboard History Switcher or the Paste Previous Clipboard macro that is installed disabled in 3.1) to paste whatever you want from your clipboard history.
b) Change your Insert Text macro to Insert by Typing instead of Pasting. This is ideal for the typical case of inserting short text.
c) Add a Pause and a Clipboard->Set Clipboard to Past Clipboard action after your Insert Text macros. If you have a few of these macros, you might want to change one and keep it open so you can option-drag copy the action to any other macros.
Hopefully this gives you some insight into how we work. The existence of unreliable behaviour drove the change, and the consequences of the change drove the design of new features that produced a more general and better solution than the original way of doing things.
Posted Thursday, June 19, 2008. Permalink. Post a Comment. RSS. Digg This
Starting with version 3.0 of Keyboard Maestro and the just released KeyCue 4.2, the two applications work together allowing KeyCue to show all currently active Keyboard Maestro hot keys by just holding down the control key.
By combining Keyboard Maestro with KeyCue, your Keyboard Maestro macros speed up your work, and KeyCue speeds up executing your macros - what a great combination!
Better yet, you can purchase KeyCue at a 25% discount until June 15.
So if you find yourself having trouble remembering all your Keyboard Maestro hot keys, give KeyCue a try and see how it helps.
Posted Tuesday, May 20, 2008. Permalink. Post a Comment. RSS. Digg This
Microsoft Office 2008 shipped without support for VBA which caused a lot of angst among a section of the Mac Office community. The Mac BU has just announced (via Daring Fireball) that VBA will make a return in the next major release. But that release is presumably a long time away. What are users to do in the mean time?
MacTech offered a very useful VBA to AppleScript Transition Guide which provides one solution, and is certainly good reading for any VBA users.
Another way, was suggested to me recently: “Keyboard Maestro is an alternative way for to get my ancient macros to work in Word since Microsoft Office 2008 has dropped support for VBA”.
So if you are an ex-VBA user of Microsoft Office, there is good news on the (distant) horizon that VBA will make a return, and in the meantime, AppleScript and perhaps Keyboard Maestro may be some help.
Posted Tuesday, May 13, 2008. Permalink. Post a Comment. RSS. Digg This
Since Keyboard Maestro allows you to move & click the mouse at specific locations but does not have an easy way to get the position of the mouse, people have often asked me how to determine screen coordinates.
I have generally recommended either the Pixy widget (which I cannot seem to link to sensibly) or just to use a Move Mouse action and trial and error.
But Leopard introduces an addition to the screen capture command which shows the mouse screen coordinates, so simply press command-shift-4 to start capturing a portion of the screen and Leopard will display the screen coordinates as you move the mouse around. Press the escape key to cancel the screen capture when you are done.
Posted Tuesday, February 12, 2008. Permalink. Post a Comment. RSS. Digg This