Stairways Software IconStairways Software

Excellence In Software For Over Ten Years – Only with a Mac

Stairways Software Company Blog

Keyboard Maestro Ideas

To get the most out of Keyboard Maestro, you have to notice things that aggravate you when you do them over and over, and to image things could be better.

Here are some of the things I use Keyboard Maestro for:

  • Duplicate Line (control-D) in BBEdit & Xcode.
  • Open the Utilities folder in the Finder (command-shift-U).
  • VNC to my server in the Finder (via the Macro Palette).
  • Function keys for logging in to various accounts in the Terminal, and for opening various Quicken documents.
  • Bring Application Windows to Front in the Finder, so every time I switch to the Finder all the Finder windows also come to the front.
  • 20 second Delayed click, primarily so I can hover over the Print button and then go put an envelope in the printer slot.
  • Many Insert text macros (name, email, web URLs and domain names, etc) (via Typed String triggers).
  • Paste Previous Clipboard (command-control-V).
  • Type Clipboard (ie, remove styling) (from the Status Menu).
  • Launch iTunes (from the iPhone so I can then use Remote).
  • Capture command-Q and alert me before quiting Mail.
  • Lots of Insert Text macros in Mail, especially endings such as "Merry Christmas, Peter", etc.
  • Transfer to "Read" folder (command-J), Transfer to Spam folder (control-Z).
  • Macro to hide and another to show PCalc (both command-control-C).
  • Macro for Safari to reset my window format after my bank kindly mangles it.

And some developer ones:

Interface Builder:

  • Switch to XCode and Run (Command-R).
  • Close All Windows; Open the Library; Open the Inspector (Status Menu).

Xcode:

  • Insert header comments.
  • Insert { and } by Pasting (to avoid the normal Xcode behaviour of adding the closing }.
  • Open the Localizable.strings and Notes.txt files.
  • Open the documentation window.

And an Xcode insertion palette that has snippets of code like @property, or init routines, etc (probably can be done by Xcode's own snippet system).

Hopefully, that will give you some ideas of the things Keyboard Maestro can do, and some of them will sound like the things you waste time doing repetitively every day. Let Keyboard Maestro help. And if you get stuck, just drop me an email and I'll be glad to help you out.

Posted Monday, January 18, 2010. Permalink. Post a Comment. Digg This

How to get to the Open Recent menu

People ask me how to get access to the Open Recent menu in applications. You can't simply use the Select Menu Item because you're not actually selecting a menu item, you're getting half way through a UI action, and then wanting to take over and select the actual document.

The way to do it is to use the fact that you can click in the menu bar and then navigate around using arrow keys and typeahead.

So to open the Open Recent menu, click in the menu bar. You could click directly in the File menu, but I recommend clicking in the Apple menu and then right arrowing across to the File menu as this will be robust when the application name changes. So your actions would be:

  • Click Mouse at (30,10) from the Main Screen’s Top Left Corner
  • Type the Right Arrow Keystroke
  • Type the Right Arrow Keystroke
  • Type the Down Arrow Keystroke
  • Insert Text ‘Open Recent’ by Typing
  • Type the Right Arrow Keystroke

You can use this same technique to pre-open any menus or submenus while letting you choose the final selection.

Posted Wednesday, December 23, 2009. Permalink. Post a Comment. Digg This

Keyboard Maestro 4.0 released

By now you have probably heard that we released Keyboard Maestro 4.0.

Keyboard Maestro has always been a very powerful tool, and the user interface was pretty reasonably, but it was starting to show its age - it has been around since 2001 after all!

So with version 4 we took the opportunity to completely rewrite the user interface to bring it up to Snow Leopard standards. I think we did a pretty good job with this and judging by the comments I have seen around the net, others do as well.

For example , Steven Goodheart said on MacUpdate “Wow, is this new interface for Keyboard Maestro terrific! So clean, and logical, and easy to use.”. All the reviews on MacUpdate have been 5 star.

Over on Version Tracker, also all 5 star reviews, sherman1 said “The new version is impressive. New look, new features.”.

It is a hard slog developing a quality program. There is a lot of work, and a lot of attention to detail - details most people never even realize are there. So its very pleasing to see the hard work rewarded with glowing comments and happy customers!

Posted Friday, December 11, 2009. Permalink. Post a Comment. Digg This

Keyboard Maestro 4 Teaser - Clipboard Switcher

Clipboard History Switcher

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. 1 Comments. Digg This

Aragom Space War Released

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. Digg This

Selecting items from a popup menu

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. Digg This

Glowing review for Michael Kamprath’s I see Ewe

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. Digg This

Move and Resize windows

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. Digg This

Michael Kamprath’s I see Ewe

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. Digg This

Keyboard Maestro Control

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. Digg This

Controlling Keynote on Two Macs

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:

  • An Alert on Command-Q in Eudora to stop me accidently quitting it when I mean to close a window.
  • A long sequence of key presses to get Quicken to print an annual report.
  • A macro to resize my banking web site window back from the crazy size the bank makes the window.

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. Digg This

Type Clipboard

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. Digg This

Alain Damlamian’s TeX Macros Pack

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. Digg This

BBEdit 9.0 released

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. Digg This

TechTelic: Stuff I Use: Keyboard Maestro

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. Digg This

Passing parameters to AppleScripts

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. Digg This

Controlling a Mac from an iPhone using Keyboard Maestro

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. Digg This

Duplicate Line Macro

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. Digg This

Executing Macros from AppleScript and Other Scripting Languages

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. Digg This

Insert Text and Preserving the Clipboard

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:

  • Save the old clipboard
  • Set the clipboard to the text to be inserted
  • Simulate Command-V
  • Wait some unspecified amount of time
  • Replace the clipboard with the old clipboard

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:

  • Added support for Clipboard History and the Clipboard History Switcher
  • Added a macro action to set the clipboard to a past clipboard
  • Added support for Insert Text by Typing
  • Changed Insert Text by Pasting to not preserve the clipboard

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. Digg This

Syndicated Content for Company Blog

Other Blogs

User Database

Information

Assistance