A Windows user's life with the Mac, two months in


LINK - A Windows user's life with the Mac, two months in → via @_patrickwelker

I came across this review a week ago, but somehow I can’t let go of it. I just like the fact too much that the author is really giving the Mac a fair chance. Plain and simple he lists the facts that he’s not comfortable with yet. Everything is explained in a very neutral way – which I find fitting for a delicate comparison of two operating systems.

I don’t present my story to entice people to shift from one platform to the other, or to say one is better than the other.

Danny Sullivan, if you ever read this then check out:

That’s the top of a monitor where I have open my Chrome browser, the Mac notes app, and Thunderbird. The latter two are hidden under the browser. The only way to get to them is to use the Mac “Mission Control” key, a painfully slow process for those using multiple monitors.

I don’t know if Danny minimizes the windows or hides them, but switching with cmd+TAB should work just fine. Maybe Witch would also be a nice addition since it can take minimized Windows from Dock back to screen. Admitted, Mission Control really feels slow – I barely use it. Spaces arewas also a great feature I set up correctly to divide task based work spaces on your Mac – to bring back this feature there’s a great app called TotalSpaces also from the TotalFinder developers BinaryAge.

With only two months in there’s a world ahead to explore. The complete switch took me about a year.

All the best to all new Mac users and… give the Mac a chance.

Link list – Jan 12, 2013

January 12, 2013

Link list – Jan 12, 2013 → via @_patrickwelker

Sync Keyboard Maestro with multiple Mac's

January 11, 2013

A tutorial on how-to automatically sync Keyboard Maestro macros with the help of Hazel and Dropbox → via @_patrickwelker

I sat down today and thought to myself that before continuing to share more Keyboard Maestro tips, it would be useful to the ones who own more than one mac to explain how to sync Keyboard Maestro across multiple machines.

The wiki on the Keyboard Maestro website already has a manual that explains how to pull it off. Still, the whole process can be a bit tricky, c.f. I had to try out some Hazel rules before I got it right. That is why I decided to publish a step-by-step tutorial with screen shots and the necessary code snippets.

You can download the macro and Hazel rule on my GitHub.

What you need:

This is how the Macro will look like:


All steps in detail:

  1. Create a folder called “Sync” in your Dropbox. It will work as a temporary storage for the Keyboard Maestro Macros1.
  2. Open Keyboard Maestro and create a new Macro with an application trigger that will fire as soon as Keyboard Maestro quits (see screen shot point 1).
  3. The next thing on the agenda is to add two If Then Else actions. We, or more precisely the macro, needs those to determine on which Mac it is running at the moment. Enter the names of your hard drives here (see screen shot point 2).2
  4. The next component will copy the Plist into our sync folder. In both If Then Else actions we need an Execute a Shell Script action. Copy the following snippet in each of those (see screen shot point 3) – in case your folder isn’t called “Sync” remember that spaces are \space in terminal paths:

     cp -rp ~/Library/Application\ Support/Keyboard\ Maestro/Keyboard\ Maestro\ Macros.plist ~/Dropbox/Sync/Keyboard\ Maestro\ Macros.plist 
  5. Add an Execute an AppleScript Action to the macro (again to both If-conditions). The next snippet takes care of changing the color label of the macro database file to orange on Mac #1 (here: desktop Mac) if Keyboard Maestro quits. Copy and paste the snippet into the action (see screen shot point 4a):

     tell application "Finder" to set label index of alias POSIX file "/Users/patte/Dropbox/Sync/Keyboard Maestro Macros.plist" to 1
  6. On Mac #2 (here: MacBook) paste this snippet (see screen shot point 4b):

     tell application "Finder" to set label index of alias POSIX file "/Users/patte/Dropbox/Sync/Keyboard Maestro Macros.plist" to 2
  7. Add the Dropbox “Sync” folder in Hazel (here: ~/Dropbox/Sync) and create this rule:


Copy the following snippet into the embedded script:

osascript -e 'tell application "Keyboard Maestro" to quit'
cp /Users/patte/Dropbox/Sync/Keyboard\ Maestro\ Macros.plist /Users/patte/Library/Application\ Support/Keyboard\ Maestro/Keyboard\ Maestro\ Macros.plist
osascript -e 'tell application "Finder" to set label index of alias POSIX file "/Users/patte/Dropbox/Sync/Keyboard Maestro Macros.plist" to 6'
osascript -e 'tell application "Keyboard Maestro Engine" to reload'

On your second Mac you setup the exact same rule like in step 6 but you change the color of the applied label to red – the embedded script does not change.

Side note:

You’re now all set. If you open Keyboard Maestro on your desktop Mac and close the Keyboard Maestro Editor the database will get copied to your Dropbox folder and an orange color label will be applied to the file.

On your MacBook you will have to wait until Dropbox is finished syncing before opening up Keyboard Maestro there. Also, the system notification entered in Hazel should tell you when our sync is finished.

The database – ~/Library/Application Support/Keyboard Maestro/Keyboard Maestro Macros.plist – is now synced and as a reset indicator the synced file in ~/Dropbox/Sync has a green color label.

If you open and close Keyboard Maestro on any of your Mac’s a new sync gets triggered. In short: You’ll have to wait every time for the Dropbox sync to finish before opening Keyboard Maestro on your second Mac.

In case you accidentally haven’t waited till the Dropbox synchronization is done, there’s still a copy of the most recent database in your Dropbox sync folder on that other machine.

UPDATE (2013-05-06):

Peter Lewis from Staircase Software just send me an email with an updated AppleScript which takes care of some problems. I haven’t had any issues with the setup as it is, but if you want to be on the safe side:

A user pointed out that if Keyboard Maestro editor is actually running on the target mac, when it quits it will induce a sync in the reverse direction, which is not desirable.

Changing the first script of the hazel script to:

tell application "Keyboard Maestro"
if it is running then
setMacroEnable "Sync Keyboard Maestro" without enable
end if
end tell

disables the sync macro before quitting the editor, which writes the disabled script to disk only to have it written over by the hazel action’s later behaviour.

Or people could just wait until 6 is released of course, Peter.

  1. Keyboard Maestro saves all macros in this file on your system: ~/Library/Application Support/Keyboard Maestro/Keyboard Maestro Macros.plist

  2. The only premise is that the hard disks used for identifying the Mac have different names.

Keyboard Maestro and your browser are friends

January 06, 2013

Keyboard Maestro and your browser are friends → via @_patrickwelker

I remember it like it was yesterday: the day when Safari got support for extensions was a great day. After I searched the whole worldwide web for plugins my Safari arsenal was soon to be huge; but at the same time my resources where climbing to new heights too.

Nowadays a lot of things changed. Google Chrome has become my default browser, I only use a handful of extensions1 and Keyboard Maestro is omnipresent to make sure everything I need is in reach and right under my fingers.

This is my small collection of browser specific Keyboard Maestro macros.

I’ll tell you more about my browser of choice soon, but todays topic is more generic – these macros will work on any browser.

Less extensions, more bookmarklets

Browser extensions and plugins eat up memory. It’s not much but if you have a handful of extensions running which claim about 20-30 MB each, your browser will soon start to look more bloated than it needs to be.

On my smallest Mac – an 11” MacBook Air – I simply cannot afford to grand my browser that much RAM. This is why I came up with a solution some time ago which was almost too close at hand: bookmarklets.

Most of my favorite extensions started out as a bookmarklet before they became those great and useful multi-talents that can do magic (and look great doing it).2 Often times these bookmarklets are still in active development if the developer cares enough for browser without a plugin API or for the browsers of mobile devices. Fact is: they are about just right for the job of cutting down resource hungry extensions that I barely access or which I simply just don’t want to clutter up my toolbar.

That’s why I got a whole folder in my bookmark manager dedicated to those nifty JavaScript wonders. Currently I have about 30 bookmarklets. Here are some of them to give you an idea of how my folder looks like:


They are hidden away in subfolder, but even if they where right inside my bookmarks bar it would be too cumbersome to navigate to them with the mouse. Since I made some Keyboard Maestro macros they are still accessible, plus I have a bit more space left in my bookmarks bar. Here’s an example for one of my favorite web services: Huffduffer.3


A palette for your someday/maybe bookmarklets

For the bookmarklets and services I use all time I don’t need a dedicated palette – at some point they became hard-wired to my brain.

Still, I can’t do without a Keyboard Maestro palette in my browser. From time to time there are things to do that are not a daily occurrence, but where it would be great if the task at hand could be done more easily.4

In nearly all of the applications I use I have one shortcut for such a “handy to have” palette. To spare me remembering the shortcut, it’s always the same one – it just triggers other palettes depending on the app I’m in. This is one of the constants which accompany me throughout my digital day.

Here’s one of my favorite shortcuts:


When I’m in my browser, this modest little palette pops up:


Just in case you find it easier to modify macros than starting from scratch, I’ve uploaded my bookmarklet macros to GitHub. Enjoy.

  1. Ok. That’s a semi-truth, but I’m going to explain this in an upcoming post – I Promise.

  2. Honorable mention: I still use the Evernote extension instead of the bookmarklet. The latest addition of auto-completing my tags and finding the right notebook to put the clipping in is simply ingenious.

  3. Huffduffer offers no Safari extension, with Keyboard Maestro you can simulate one for Apple’s default browser.

  4. Sometimes I like to surf Japanese websites and since I don’t understand the language I need to translate them quickly, other times I need to print a PDF of a website as a reference, etc. The possibilities are endless, as so often with Keyboard Maestro.