Textexpander 5.0.1
Here's a TextExpander snippet (well, two snippets) for titlecasing the clipboard contents: (Two snippets are necessary because of a bug that appends a newline to the end of any JXA snippets. This will be fixed in TextExpander 5.0.1, but in 5.0 it's necessary.). Read reviews, compare customer ratings, see screenshots, and learn more about QuickKey - Text Expansion. Download QuickKey - Text Expansion and enjoy it on your iPhone, iPad, and iPod touch. Yes, 5.0.1 shipped shortly after the issue. It's just a bug fix update, but there are a lot of tweaky little bugs that Peter stomped, so it's well worth getting. Just choose Check for Updates from the Keyboard Maestro menu.
The first Mac program I ever bought was CE Software’s QuicKeys, back in 1989. Although I’ve used different macro utilities over the past 22 years — KeyQuencer, OneClick, iKey — there has always been one on every Mac I’ve owned, and my current favorite is Keyboard Maestro, from Peter Lewis of Stairways Software. For those things I absolutely need, such as switching applications by pressing F-keys, entering a few text strings I use constantly, remapping or creating keyboard shortcuts in various applications, automating moving data from one application to another, applying BBEdit text factories to clipboards, performing actions at particular times, and more, Keyboard Maestro has longdone what I want. It also provides me with the capability to access previous and stored clipboards, something that enables me to avoid using a separate clipboard utility.
But every now and then, I’ll admit, Keyboard Maestro hasn’t had the power I needed. Keep in mind, I’m no programmer — I stumble along in a variety of languages thanks largely to the power of copy-and-paste. But I do understand control flow when programming, and I can use it effectively when I’m freed from the gotchas of syntax and punctuation that bedevil me every time I try to tweak some PHP or ExpressionEngine code. And that’s where Peter has taken Keyboard Maestro 5, a major update that also includes numerous other welcome additions.
Control flow basically enables Keyboard Maestro to make decisions about what to do at a given point, rather than simply running through a series of steps sequentially. Previously, Keyboard Maestro could only pause for a user-specified amount of time, but now it can pause until a particular time, use if/then/else constructions, and repeat actions while some condition is true or until some condition is met. Of course, the power here relies on the conditions against which the environment can be checked, and Keyboard Maestro offers oodles of them, including:
- Application Conditions (running, front, and the opposites)
- Front Window Conditions (exists, various title matches)
- Button Conditions (name matches, whether or not it’s enabled)
- Menu Conditions (name matches, whether or not it’s enabled)
- Modifier Conditions (whether or not they’re pressed)
- Key Conditions (whether a particular key is up or down)
- Typed String Conditions (uppercase, lowercase, or title case)
- Disk Conditions (name matches, whether or not it’s mounted)
- Path Conditions (whether or not a file or folder exists)
- Clipboard Conditions (does it contain certain content)
- Variable Conditions (does it contain certain content)
- Calculation Conditions (is the calculation true)
- Environment Variable Conditions (does it contain certain content)
- Pixel Conditions (compares the color of a particular pixel)
- Location Conditions (checks the name of the network location)
- Script Conditions (what does a script return)
As you’ll notice in that list, Keyboard Maestro supplements its control flow and condition-checking capabilities with variables and calculations, which are key for performing actions that go beyond what a smart monkey could do with the mouse and keyboard. It can also prompt for user input with text, passwords, pop-up menus, and checkboxes. Variables are stored permanently, and can contain text or arrays of numbers. You can use variables to adjust the pointer location, window size and position, and much more, and variables can be accessed from and written to by shell scripts and AppleScripts. And for some serious fun, you can even run a grep-based search-and-replace on the contents of a variable.
I’ll admit, the hard part is going to be changing my mindset surrounding Keyboard Maestro. For the most part, I only think about automating sequential tasks that are easily translated into step-by-step macros. At various times in the past when other utilities have provided similar capabilities, I have been unable to figure out just how to translate the real world environment of my Mac into a macro that could make decisions.
For instance, here’s a task I’ve never been able to automate before. For tracking which TidBITS issue number will appear on which date, I make calendar events on every Monday in BusyCal, incrementing the issue number for each one. But since we take a few issues off each year and sometimes have special issues, it’s not entirely regular. Complicating the issue is that making these events can’t be done entirely from the keyboard, and my experience is that bringing mouse clicks into any macro makes it prone to breaking as soon as the window moves. And of course, there is the simple fact that not every calendar month looks the same — some months have four Mondays, some have five, and sometimes there are Mondays from the previous orsubsequent months that appear in the first or last slot in BusyCal’s month view. I haven’t had sufficient time to work through all the complexities of this macro, but with Keyboard Maestro 5.0, I’ve already come closer than ever before — the next step is either to use incremented variables to simulate clicking on each successive Monday in a month, or to copy the date from BusyCal’s Info panel and use variables to increment the day appropriately.

Keyboard Maestro 5 goes beyond just adding programming capabilities. Encoding pdf417 drivers license format washington. It also features significantly enhanced clipboards, so you can now use Quick Look to show entries in the clipboard history and named clipboard switchers, send clipboards to other Macs running Keyboard Maestro (with its Web server option enabled), and perform grep-based search-and-replace actions on the contents of a clipboard. I’ve become utterly addicted to Keyboard Maestro’s clipboard history, and I even have a macro that pastes thesecond-to-last item copied — I find that I need to access it frequently.
New actions enable Keyboard Maestro to speak text, play sounds, display text via Growl or in a custom window, and search the Web. Plus, existing actions have been enhanced, so Keyboard Maestro’s Quit action now has options to relaunch and force quit, and lets you operate on the current application, whatever it may be. The Open File, Open Folder, and Open URL actions now let you specify particular applications to use, rather than relying on the Finder’s defaults, and Growl actions work even if Growl isn’t installed. I often have to open PDFs in Acrobat Pro 9 (my default is Preview) so I plan to create a macro to do that with a simple keystroke rather than using Open With (slow), dragging to the Acrobat Pro icon in the Dock (a longdrag), or using LaunchBar (a fussy approach I can never remember).
Keyboard Maestro 5 also features many more tokens, which are bits of text picked up from the environment, like date and time. New tokens include the contents of variables, named clipboards, current track info from iTunes (name, album, artist, and rating), current application name, current mouse location, front window details (name, size, position, and frame), screen size, system volume level, address book details (name, first name, last name, nickname, and organization), and the names of the executing macro and its macro group.
Textexpander 5.1.5 Download

As I write that, I feel a little badly about simply listing so many enhancements to Keyboard Maestro, and I do it not because I think everyone cares about each particular item, but to jog the imagination of those people who have previously been stymied in their attempts to automate some task. To give you a sense of just how massive this upgrade is, I still haven’t listed all of Keyboard Maestro 5’s new features.

But in the end, just as I considered Keyboard Maestro 4 essential for my everyday Mac usage, I think Keyboard Maestro 5’s new features will merely make the application all the more essential. You may not be as addicted to automation as I am, but I’m confident in saying that without macro-based automation, I’d be a far less productive Mac user.
If you’re using Keyboard Maestro 4, version 5 provides a ton of new capabilities for you to take advantage of for an $18 upgrade price, through 31 August 2011. After that date, and for owners of pre-4.0 versions, the upgrade costs $25, and new copies cost $36 (for an individual to use on up to 5 Macs). Keyboard Maestro 5.0 requires Mac OS X 10.6 Snow Leopard, and is 64-bit native. Although Keyboard Maestro 4.4 is available from the Mac App Store, Apple hasn’t approved version 5.0, and unfortunately, there’s no way to transfer licenses to or from the Mac App Store, though those who purchased 4.4 on the Mac App Store will receive a free upgrade to 5.0 when (and if) Apple approves it. A free trial version is available as a 12.7 MBdownload.
After upgrading to Safari 5.0.1, I noticed that the flashing text insertion point in Mailplane, the WebKit-based application that improves Gmail’s Web interface, stopped working when I used the arrow keys. To be specific, the insertion point disappeared entirely, such that it was impossible to tell where typed text would appear. Relaunching Mailplane made no difference, nor did turning off utilities (like Keyboard Maestro and TextExpander) that mess with the keyboard. Interestingly, the bug bit me only when I was writing plain text mail; if I switched to Rich Formatting for a given message, the insertion point worked properly again. Alas, I far prefer writing plain text messages.
A quick trip to the Mailplane support mailing list revealed what was going on. Mailplane’s developer, Ruben Bakker, identified the problem as being an interaction between the version of WebKit installed by Safari 5.0.1 and the current 10.1.53.64 version of Flash Player (that’s later than the version that Apple ships with Mac OS X 10.6.4, but is recommended for all users for security reasons; see “Adobe Flash Player 10.1.53.64 Blocks 32 Security Holes,” 11 June 2010 and “Mac OS X 10.6.4 Fixes Highly Specific Bugs,” 15 June 2010). Because the problem revolves around WebKit and Flash Player, it also manifests itself when you’re using Gmailin Safari, as long as you have the appropriate combination of software versions. Gmail viewed in Google Chrome doesn’t seem to suffer from the problem, despite that browser also being based on WebKit, but it’s impossible to know exactly why.
You might be confused about why Flash would enter into the picture at all, and that’s in fact a hint toward the easiest solution to this problem for Safari users. Gmail uses Flash to provide “advanced attachment features,” the capability to attach multiple files at once and to display progress bars while attachments upload. As far as I know, that’s the only place Gmail relies on Flash, and if you switch to Basic Attachment Features in Gmail’s Settings, that eliminates Gmail’s use of Flash and works around the bug.
Stalker call of chernobyl stashes. Stashes are item caches left behind by stalkers for a number of reasons, such as temporary storage. Stashes come in a number of locations throughout the Zone and one needs to learn of the coordinates of a certain stash to access its contents, otherwise the stash will be empty.
Mailplane users now have an even better solution – updating to Mailplane 2.1.10, which resolves the problem even if you have Advanced Attachment Features turned on in Gmail. The update is free and is a 21.1 MB download.
There are several other workarounds for Safari users.
- You could, in theory, revert to an earlier version of Flash Player, but given the security vulnerabilities in the 10.0 versions, I wouldn’t recommend that. Adobe doesn’t make it easy to find older versions anyway.
- You could install the free ClickToFlash plug-in for Safari, which disables Flash generally and then lets you re-enable it for specific pages (see “ClickToFlash Spiffs the Safari Experience,” 28 May 2009). I’ve tested this, and it seems to resolve the problem when using Gmail in Safari.
You could disable Flash entirely by removing the Flash Player.plugin file from the Internet Plug-Ins folder in your top-level Library folder. To reinstall the latest version of Flash Player in the future, just visit the Adobe Flash Player download page. Disabling Flash may have other ramifications, depending on the sites you frequent, and ClickToFlash is a more elegant solution.
Textexpander 5.1.5
What I don’t know yet is where primary responsibility for the bug lies: Gmail, Safari, or Flash Player, although it was the update to Safari 5.0.1 that triggered it. I suspect that any of the three parties could fix the problem, as Ruben Bakker did for Mailplane, but it’s hard to see any of the three parties having as much incentive as he does.

I also don’t know if this problem affects sites other than Gmail. Presumably there are other sites that use Flash and provide text-input fields for users; it’s conceivable that they could suffer from the same problem when accessed via Safari 5.0.1. If you know of any, let me know in the comments.