Evernote Filing Suite For Keyboard Maestro

December 22, 2013

Evernote Filing Suite For Keyboard Maestro → via @_patrickwelker

Update (2014-08-08): You need to have the latest version of Fletcher Penny’s MultiMarkdown installed on your Mac (see Dependencies).

Update (2014-01-19): Added a new condition → if you don’t enter a tag at all there won’t be added any tags to your Evernote file(s).

Update (2013-12-31): Dependencies section → added links to the Martin Kopischke’s download site for the pre-compiled Automator action. You just have to double click the action to install it. I also added a download link for the Automator wrapper.


1. Introduction

I’ve neglected Evernote for a long time. Lately, I’m willing to give it a second chance. This post is about my ‘Evernote Filing Suite’.

What brought to me this set of macros is the need of a speedier filing for my findings to Evernote. Coming from plain text entering data is super simple and fast – I really missed that when considering Evernote again. The new Evernote Web Clipper is a great browser plug-in, but it’s oh so slow.

After installing the macros you will get a Keyboard Maestro palette which looks like this:1


Don’t worry Safari users… I got you covered, too.

2.1 How It Began

Initially, I just wanted to migrate some of my running lists from Markdown lists to Evernote. I’m still not sold on the idea since plain text is so versatile and allows me some kind of flexibility like rearranging items in a list very fast. Simply put, for any kind of document modification plain text rules.

To get the purge of my lists going, I used Martin Kopischke’s Markdown to Evernote Ruby script which is an enhanced version of Brett Terpstra’s System Service for Evernote clipping. Back then I wrote a shell script which was doing a couple of things:

  1. Get a Markdown link list
  2. Remove a list interpreters
  3. Add a predefined notebook and tags
  4. Convert the URL to a variety to x-callback-url’s
  5. Create a new text for each line of the Markdown list and run Martin’s script on it.

It worked, despite of some minor annoyances. Beforehand my lists looked like this:

* [iOS statusbar cleaning on any background - All this](http://www.leancrew.com/all-this/2013/12/ios-statusbar-cleaning-on-any-background/)
* [The Feed Reader Reviews: Six Months Later](http://www.macdrifter.com/2013/12/the-feed-reader-reviews-six-months-later.html)
* [Daring Fireball: Pixel Perfect](http://daringfireball.net/2012/08/pixel_perfect)

After the script, a note in Evernote on iOS would look like this:

evernote converted md list

The only thing that was missing was a way to specify a source URL for the Evernote notes. No big deal since I already had a couple of clickable links to the source url in the note, but you know… I can be pretty stubborn when it comes to minor details. Sometimes I can’t let go, and after doing some research and trying to make my script work with some excellent scripts over at Justin Lancy’s Veritrope I finally gave in and send out a tweet to Martin:

Tweet could not be processed

Two months later Martin has completely rewritten is script and now offers you the convenience of an app which makes it as easy as it gets to transfer your Markdown to Evernote. He added some really clever options aside from adding a source URL you now can attach a file, modify the date, etc.

I’ve been beta testing his app ever since and made a couple of Keyboard Maestro macro for all the relevant Evernote tasks I could think of. While testing the app I gave Martin some sleepless nights because my OS is kind of over-tweaked and despite of working flawless with the Automator workflow Martin provided in the 1st beta it just hesitated to work with his app. By the way, Martin is always happy to hear about possible bugs. If you encounter one drop him a mail or get in touch via Twitter or ADN.

2. Dependencies

So, before we jump right in to my Keyboard Maestro filing suite for Evernote, let’s clarify the bare necessities.

You got to have this on your Mac:

Head over to Martin’s GitHub page and install the Automator action. We don’t really need the app for the Keyboard Maestro macro’s, but a wrapper for his action. Either you download his first beta where there is an Automator workflow in the download package or you use the download link above or you get your hands dirty and build your own which should look like this:


Save it as an Automator workflow named “MMD → Evernote” to your ~/Library/Services folder.

We do this because when sending multiple entries/files to the app in a loop, the app will choke a bit and generate the same Markdown file in Evernote. An example would be the “Safari Tabs as Separate Notes [T]” macro. My theory is that an Automator workflow handles a loop like this different, allowing only one instance to run, then waits until the foremost is finished and continues with the next action only when the previous workflow has finished. But what do I know… using the Automator wrapper works, so that’s what we’re going to use for all macros.3

3. The Macros

Here’s a detailed description of what the macros do and what features they have on-board.

3.1 Clearly

As an Evernote user you clearly came across Evernote Clearly.4 Well, this macro does just that – more precisely it resembles the “simplified article” function of the latest Evernote Web Clipper plugin for your browser. It strips out everything that is unnecessary and sends a clean version of the web site your on to Evernote.

Why should you use this macro instead of the browser plugin?

  1. You’re like me and want to keep your browser clean and save some resources. Go ahead, ditch the plugin.
  2. You want a speedier way to add a simplified article to Evernote and avoid your mouse having a better pedometer count than you.

How the macro works:

  1. Checks if Safari or Chrome is at the front if not it outputs at error message. This also means that you can’t fire up the macro anywhere. Your browser has to be the active window.5
  2. Sets up variables for the title and the URL of the web page in the active tab.
  3. Runs Heck Yes Markdown by Brett Terpstra in a shell script and returns the a clean Markdown text as a variable.
  4. Runs a helper macro (“00)Select Evernote Notebook”) - an AppleScript to select one of your Evernote notebooks out of a list.6 If you cancel the macro exits more or less gracefully: it deletes all variables and stops the helper macro and the macro that executed it.
  5. Prompts you for some tags that you want to add to the note and generates a variable.
  6. Formats your markdown text along with all variables for the front matter.7
  7. Runs the workflow for Martin’s Automator action and send your data nicely formatted to Evernote.
  8. Cleans up all the used variables.

Note: Currently the macro doesn’t check upfront if Evernote is running. As a best practice, start Evernote first and just let it run in the background so that the prompt for selecting a notebook has a database to work with.


3.2 Create Note In Secondary Editor

If you like me you have more than one text editor. On my Mac FoldingText is always open, hence I neglect the excellent Byword.

In case you’re equally cruel to your second favorite editor that I am, fear no more because with this macro it will become useful again. After some smart questioning about the Evernote note you want to create, this macro will open your secondary editor and enter all the relevant metadata.

When your done, just save and quit the editor and the macro will upload your Markdown note to Evernote.

In detail:

  1. Starts the helper macro to select one of your Evernote notebooks.
  2. Opens a dialog where you can enter some tags, select if you want to add an URL (from Safari or Chrome) and if you want to add an attachment to the note.
    • if you choose to select an URL the title from that web page will get used, too.
    • if you check that you want to attach a file a Finder dialog will open and you can choose a file which will get appended to your Evernote.
  3. Depending on the options you choose a different IF condition will trigger and format your markdown text as a file which will then launch in the editor you specified (set it in the first variable “Secondary Editor”).
  4. Since we don’t need them anymore, all used variables get deleted and the macro is paused until you quit your secondary editor.8
  5. If you quit the editor the Automator action starts to send your document off to Evernote.

Side note: Usually I try to avoid option lists in Keyboard Maestro since you can’t navigate through them with the arrow keys unless you press escape one time when you enter the list. On the second run, they can be navigated via the arrow keys. This behavior is counterproductive for a keyboard user and the reason why I came up with this solution in the first place.9

Here’s the macro – you need to configure the macro for your editor of choice – the two actions you need to change are outlined in the first comment (which is not part of this screen shot):

secondary editor

3.3 Chrome/Safari Tabs As Single Note

This macro is for those times when you do a want to archive your web research findings to Evernote.

If you’ve already download the macros you will see four different options: one for Chrome and one for Safari. Each of them has a version which doesn’t prompt you for inserting tags.

Here’s what is going on in the “Chrome Tabs as Single Note” macro:

  1. We use a slightly modified version of an AppleScript from Veritrope which generates a Markdown list of all tabs in your browser window.
  2. The helper macro gets triggered and you can choose the Evernote notebook.
  3. The text gets reformatted.
  4. We send the whole thing of to “Markdown → Evernote” and delete all unused variables.

The output looks like this:

en output single note

3.4 Chrome/Safari Tabs As Separate Notes

Similar to the previous macro this one fetches all browser tabs. The key difference is that we use Keyboard Maestro’s “For Each Item in a Collection Execute Actions” to break up the generated link list.

On each line (which contains a Markdown formatted link like [God](http://heaven.org)) we run some regular expressions to get the title and URL into separate variables.

After that we generate another title variable for an encoded version of the title since we want to generate a list of x-callback-url’s for each of the links. This way, when viewing the note on an iOS device we can jump right into the action. Yeah.

The output looks like the screenshot in chapter 1 of this post.10

The x-callback-url’s I used are explained in a comment above the action (inside the macro). I suggest you adjust them to your liking, most of them will work out of the box.

3.5 Send URL From Browser To Evernote

This macro takes the current browser tab in Safari or Chrome (which ever is at the front) and sends it to Evernote. You can also make a selection in the browser and add an attachment in an Finder dialog. Both will get appended to your note.


Regarding the selection:

  • if Safari is at the front the macro figures out automatically if there is a selection
  • if Chrome is at the front there’s a dialog box will ask if there is a selection

I’ve tried my best to format the selection as a Markdown quote, but sometimes the result isn’t that great. Maybe I find a way to incorporate Brett’s latest addition to his Markdown family: Marker: Web selections to Markdown.11

If there is text selected and an attachment the note will look like this:

en url quote attachment

3.6 Append Chrome Tabs To List

This macro grabs all tabs and appends them formatted as a list to a note.

So, if you don’t use separate notes as a list and instead prefer to gather material in a single note then this is for you.

The output looks like this:


Since I image you won’t have a lot of these notes I choose to use a more concise approach when selecting one of your lists. I used an AppleScript well know to RocketINK readers to choose a list:

choose list

Next, there’s again the great script from Justin Lancy’s Veritrope which gets all links from the browser. And lastly we use a modified version of Federico Viticci’s append AppleScript](http://www.macstories.net/tutorials/quickly-append-browser-urls-to-evernote-with-keyboard-maestro/).

Additional notes:

  • there’s a Safari version, a Chrome version and a version with an IF condition which you can use if you run both browsers (25)6. Append Tabs to List [A]). Choose the one which best fits your needs.
  • if Evernote isn’t running the script will start it
  • there’s another macro which does the same thing but only for one tab

3.7 Markdown Selection As Note

Here we have the most simple use of Martin’s script. I just passes the current selection to Martin’s “MultiMarkdown → Evernote”. That’s it.

3.8 Markdown List As Separate Notes

This macro takes an input that is formatted like a Markdown list with inline links…

- [Macdrifter](http://macdrifter.com)
* [MacStories](http://macstories.net)
+ [Dune 2000](http://mygamesworld.tripod.com/games_dune2000/dune2000.html)

… and outputs each of the links as a separate Evernote note.

4. Tips & Ideas

Lastly, here are some thoughts on how to further improve this set of macros to make it more personal and useful.

Favorite Notebooks

If you have a huge list of Evernote notebooks and what to keep the “Select Evernote Notebook” dialog concise, built your own dialog with your favorite or most used notebooks.

You can find an example in the “Append Chrome Tabs to List” macro.

Automatically Add Tags For Specific Notebooks

I double-tag most of my notes. What I mean is that if I put something in my notebook “Recipes” the first tag I’ll enter will be “recipe”. Maybe you have a cupcake notebook, so you could modify the default tags for such a notebook via an IF action in Keyboard Maestro:

IF cupcake THEN add “recipe, cupcake, sweet, baking, sins”

More Comments

If you like the comment function if TKTK and what it in some other macros then just adjust them and copy them over.

Comments For Clearly

Add a comment prompt like some of the other macros use to the Clearly macro to make it even more useful.

Customized Browser Support

If you only use Safari or Chrome you can get rid of the IF condition in some of the macros that checks which browser is at the front. By doing this you can trigger the macro even when your browser window is not the active window.

On the other hand, if you’re constantly running two browsers then you could integrated said IF condition into the macros where it’s missing.

5. Last Words

This macro suite enables me to swiftly create notes. What I still have to get used to is that my data is tucked away in an app. With plain text I just open my list and theres the data ready to be worked with – on iOS I can still work with my data without no matter if I have an Internet connection or not (which wouldn’t be a problem if I’m a premium subscriber to Evernote… but at the moment it is).

In conclusion, for the few running lists I keep that workflow is hard to beat. That’s why I still keep my plain text lists and use Evernote for gathering research material and collecting static web finds that I don’t modify or change in any way. More on that soon.

  1. All icons in the palette are from iconmonstr.

  2. My guess is this is because of Ruby 2.0, so if you have that one installed on an older Mac it might work there, too.

  3. It certainly works with the app, too, but I’d have to put some wait and pause actions in the macros. For a simpler maintenance I just kept the worklow in all macros instead of changed some to use the app.

  4. Yes. That’s exactly the kind (cheap) of wordplay slash pun you’re going after if English is not you’re native language. You just take what you can get and live with the shame for the rest of your life. \(-_- )

  5. Tip: if you don’t like this and only use one browser, you can get rid of the if statement and it will work without the browser being active, c.f. if you’re text editor is open.

  6. The macro consist of a modified version of an AppleScript by Joe Ross: “Evernote + Automator = Auto-combine PDFs”.

  7. The front matter is located at the top of your document and contains a set of metadata which doesn’t show up in the actual document but which is used to format the note in Evernote correctly, c.f. the tags, title, etc.

  8. Again, that’s why I didn’t choose to use my default editor. It usually has some documents opened and I don’t like to interfere with them.

  9. If I see myself using the URL chooser more often I will either divide this macro in two macro (one for each browser) or write an AppleScript that replaces the Keyboard Maestro dialog. I should probably contact one of my favorite Mac developers out there (aka Peter Lewis).

  10. Well, almost. I have used Keyboard Maestro percent encode function, when instead I should have encoded the URL’s properly like in the Clearly macro. I had some problems getting the output of OmniFocus x-callback-url to look nice, but have postponed this to some other time. Also the horizontal rule is gone and a dot is at the bottom. Ugly, but it works.

  11. Marker just got released as I wrote this. I’d love to play with it, but for now I invested enough time in Evernote for another two Christmases.

Better than Apple's Launchpad

December 10, 2013

Better than Apple's Launchpad → via @_patrickwelker

Back to the basics. This is in my humble opinion the best view setting (⌘J or Finder > View > Show View Options) you can set up for your Applications folder.

view options

With almost 400 apps I have to occasionally find an app which name I can’t remember at all. I find Launchpad a pain in the behind to maintain and Alred or LaunchBar don’t do me any good if I have no clue what to search for. This view allows me to find what I’m looking for pretty fast with a birds-eye perspective

applications folder

Before the Mac App Store arrived I used to color code the apps into categories (design, music, system, web development, etc.) and sorted them by label. But ever since its introduction some apps just refused to take a label (no matter if the corrects rights were assigned). Other labels were overwritten after they got updated and my automatic Hazel rule wouldn’t work for them. Nowadays everything in my applications folder is without a tag or label.1

Short, super-simple and sweet. That’s it.2

  1. I probably should look into tags for grouping, but I read somewhere that the same problems still persist. So this is postponed for now.

  2. … and yes, I hestitated to post this because it’s so basic. Then again, I forgot to set this up after installing Mavericks and have tried to use Launchpad on the few occasions that I had to search for some mysterious app. I was glad that I remembered the good old list view and voilà, here’s a post about it.

Updated Notes Palette Filing Macro

December 09, 2013

Updated Notes Palette Filing Macro → via @_patrickwelker

When first talking about my notes palette I wasn’t sure with what I’ll stick.


It turned out that I still like the notes palette (⌘ Page Down) – I use it daily. What I didn’t like was, that I needed to change all four macros for the types of actions (appending a note via prompt, clipboard, selection or Browser URL) if the name of a note file (e.g. scratch, my groceries, etc.) changed. I fixed that.

All four types now call a “notes location” macro (which can stay inactive because Keyboard Maestro can execute inactive macros if they are explicitly called in a macro):


Here’s what the new “00)Note Locations” macro looks like. You have to change some variables in the macro and if you use Apple Reminders also in the AppleScript. It’s fairly self explanatory and I added some comments were I thought they fit. Like always, if you have a question ask me in the comments, via mail or on Twitter. I’m happy to help.


UPDATE: I forgot two things. The download link and that you will need an “Cancel all Macros” macro in a globally accessible group in Keyboard Maestro (so that the macro fails gracefully if you choose to escape the list dialogue)1. Something like this:



PS: The icons in the palette are still those from Alex Shutin.

PPS: You’ll need the note locations macro in tomorrows post.

  1. At some point I had a solution that doesn’t require this, but I can’t find it. I’ll update the macro if I can find it again in the tangled mass that is my macro library.

Yotaphone - an dual screen E Ink smartphone

December 08, 2013

Yotaphone - an dual screen E Ink smartphone → via @_patrickwelker

There is no blood on the dance floor in the world of smartphones but E Ink. Okay, it’s not the dance floor, it’s the back of a smartphone. You might wonder what this post is about, if not a post about terrible introductions. Let me enlighten you:

The Yotaphone is an E Ink smartphone with a dual screen. The release hung in the balance the last couple of months but things went fast and out of a sudden the innovative Russian product is officially released and available since the 4th December in Russia. Some European countries, c.f. Germany ought to get the phone too by mid-December.

The back of the Yotaphone carries an E Ink display and the front acts as a normal smartphone. It has 4.3″ screen and runs on (the slightly older) Android 4.2.2.


The hardware specs are not on the upper-end for a $689 (500 €) phone, but we know that strategy from Apple. If a thing called innovation has a finger in pie you’re allowed to charge a bit extra.

Talking about hardware specifications:

The main screen:

  • 4.3 inches (10.9 cm) with a resolution of 1280x720 pixels
  • weight: 5.29 ounces (150 g)

The E-Ink panel:

  • the same size but with a resolution of 640×360 pixels

The Yotaphone runs on a 1.7 GHZ Dual-Core processor, has 2 GB RAM and a 32 GB SSD flash memory.

The price construction is not the only inspiration they might have taken from Apple. Yota had an Apple style launch event on Wednesday which was streamed live by Cnet and in which the word “magical” appeared frequently. The

After all the price seems reasonable since where not talking about Apple or Samsung and are dealing with a gadget that has 2 displays. If you’re not stuck in the Apple eco-sphere and do a lot of reading on your device this might be a gadget for you. If you’re tempted keep in mind that the E Ink screen is fairly small and won’t be an adequate replacement for a device like the Kindle Paperwhite.

Feature-wise the E Ink display can display updates in real time. It’s always on and hence could be useful in some scenarios when you’re battery is flat, for instance this scenario:


You can use it for RSS feeds, your calendar, notifications1. Basically you have a canvas to which you can a widgets to it.

PS: If you’re not in for the whole keynote (30 minutes presentation and from then on begins the Q&A session), Engadget has a review here,

  1. You can define in the settings menu which notifications you want to see. Apart from displaying everything you can limit amount of messages to only the necessary ones.