My PopClip Setup

There are some applications out there that can seem daunting when they are first opened. OmniFocus 2 is a great example. DEVONthink Pro Office is another - large applications with an amazing feature set (and a price to match). 

I may use those two applications every day, however, when I recently reinstalled macOS on my laptop and started working, there was one application I was missing that affected my workflow. It’s nowhere near the size of other applications and often you barely realize it’s there. Until it’s not. 

That application is PopClip

PopClip is a wonderful little application that takes any text you highlight and performs an action of your choosing, either with the formatting of the characters or sending it to a third party application for processing. 

Installation

Installation is simple. Find the application in the Mac App Store (or click this link) and install. 

Configuration 

When you run the application for the first time, you are prompted to Open System Preferences and allow PopClip to control the computer using accessibility features. This must happen in order for PopClip to work it’s magic. Run through the process.

When complete, you’ll see there is just PopClip icon sitting in the menu bar. If you click on the menu bar icon, you’ll see the PopClip configuration window open and some options to choose from.

 
 

Home - here, you can set PopClip to Start at Login (my personal preference) and to Show in menu bar. 

Appearance - this allows you to change the size of the pop up windows that appear when you highlight text

Excluded Apps - you may not want PopClip to run in every application that you use. I don’t personally have any applications set to ignore PopClip, however if this is your preference, you can set them here

PopClip Functions - this is where you get to the meat of the application. By default, you can see from the screenshot below that there are several functions enabled. What’s important to note is that the actions will only appear if they are relevant to the Context of the text you are highlighting.

 
 

As an example, if I highlight a web address, then the option to Open Link will appear, as well as Cut, Copy and Paste.

If I highlight an email address, then the Use Address action will appear instead of Open Link. I will also have the option to run a Search for this address in my default Search Engine.

It may not seem like there are many actions here that you can utilise, but if you click the + button in the bottom left hand corner, a whole word of available actions will open up to you.

There are downloadable extensions for many categories, including:

  • Text Editing
  • Text Transformation
  • Markdown
  • Text Statistics
  • Text Display
  • Text-to-speech
  • Translation
  • Notes Apps
  • Writing Apps
  • To-Do Apps
  • Calendar Apps
  • Other Apps
  • Web Search
  • Other Searches
  • Social Networking
  • Music
  • Link Shortening
  • Work with URLs
  • Phone Numbers
  • Dictionaries
  • For Developers
  • Useful Tools

It would be so easy and go to town, downloading as many extensions as you can! I’d advise you to exercise some caution though as you may find yourself not being able to see the wood for the trees and when you highlight your text, it could take a while to find the action you wish to perform. PopClip has a limit of 25 extensions. To that end, I’m just going to highlight for you the actions that I use most often within PopClip. 

Clip To DEVONthink/Search In DEVONthink - this extension will take the highlighted text and offer you the chance to Clip to DEVONthink in a new note, or search for the text within DEVONthink itself. The Search function will open an Advanced Search window. 

Open in Chrome/Safari - two different actions here. I find myself using both browsers in macOS for different purposes. 

Shorten URL with Bitly - I often find myself needing to shorten certain URLs, whether they are mine or third-parties. When you activate this extension for the first time, you will sign in to your Bitly account. 

Search in Spotify - I moved to Apple Music but came back pretty quickly. I love Spotify and highlighting an artists name or album on a website will automatically perform a Spotify search. Great stuff. 

Search in LinkedIn - I’m a businessman that needs clients, so often use this feature when I come across a name of note. 

Add to Buffer - Great for those articles I find that I wish to share with others. 

Add To Reading List - One of the reasons I switch between Chrome and Safari is because I use Safari’s Reading List as my read it later service. I find there is a lot less friction when sending articles from my Reading List to DEVONthink for archiving. 

Add to Tweetbot - Great for those quotes you find online, or site URLs that you just want to share now. 

Search with IMDB - This will perform a search in IMDB for the highlight text, be it a film, actor etc. 

Search with Rotten Tomatoes - I use this to gauge whether or not I should add a film to my wishlist

Add to TextExpander - The highlighted text will form a new snippet within TextExpander, leaving you to configure the abbreviations and label as normal. 

Translate with Google Translate - Pretty self-explanatory. The results are generally good. 

Add to OmniFocus - Will add the highlighted text as a new task in OmniFocus

Messages - This will copy the highlighted text into an iMessage window, leaving you to add the recipient. 

Those are the key ones that I use however when you look at the actions available, yet there are more I could use. It’s extraordinary and new extensions are actively developed. 

Check it out here.

Typinator Part 6 - Advanced Abbreviations Part 2


Here we have the last post on Typinator and I will be covering some abbreviation examples that this powerful piece of software is able to provide. 

IMAGES

If you have image files or pictures that you frequently find yourself inserting into documents, then instead of an abbreviation leading to a text output, you can have it expand into… an image instead!

By placing an image file in the Includes folder, you are able access these files in the same way you would access a text file

SIGNATURES

Signatures are a brilliant use for Typinator, especially if you work in an environment where you may nee dot use different signatures for different parts of your business. I have three signatures myself, all with a very simple abbreviation - yysig1, yysig2 and yysig3. 

You will achieve the best results for signatures by changing the Expansion output from Plain Text to Formatted Text as this will give you the opportunity to be able to change the Font formatting of your text to add some real polish to your signature and give you the chance to stand out. 

INTERACTIVE INPUT

Typinator doesn’t just look after expanding your predefined static text. No sir. It knows that there will be times when the results of the expansion will need to change. For example, let’s say that you have a thank you letter you wish to send out to customers, thanking them for their continued support. You don’t want to send out a letter that just says “Dear Customer. Thank you so much for your valued custom over the last twelve months”. This is one of my bugbears as, as nice as it is to receive a letter from someone you’ve been giving your hard-earned money to, you know that essentially they’ve just copied and pasted a letter or just added your name to a mailing list. 

By using Interactive input fields, you can personalise the content of the expansion whilst still saving time by ensuring that the majority of the content will stay the same for subsequent expansions. 

Let’s start with a simple example of how Interactive input works. 


If you look at the above image, you can see the text that has been typed in the expansion window is: {{?First Name}} {{?Last Name}}

The question marks inside the curly brackets indicate that a question is being asked and the text that is going to be displayed will be the result of this text. 

So - when you type yyname into an application, you are presented with the following pop up box

 

By inputting this information and clicking enter, the text expands into the results below. Well, if your name is Joe Bloggs of course. I’m still waiting to meet this elusive character. To date, he has evaded me but one day…

Remember that the format of expansion is the same as if you were expanding static text. Because I have a space between {{?First Name} and {{?Last Name}}, the name is displayed with a space between the forename and surname. If I was to type the expansion into the expansion window as follows:

{{?First Name}} {{?Last Name}}

Then the result we would see above would be: Joe Bloggs. 

This is something to consider, especially if you are using the expansion for creating formal letters for customers, or any other document that relies on strict formatting guidelines. 

Typinator remembers the last entry that was completed which can prove to be handy if you find yourself entering the same values more than once. So above, the next time yyname is typed, the fields will already be populated with Joe and Bloggs. 

If you wish, you can specify an initial value by using angle brackets within the curlys. Using the example above, let’s say we live in a really freaky world whereby the majority of my customers are called Neville. I could repopulate the First Name tab by typing the following as my expansion:

{{?First Name}} {{?Last Name}}

One other thing you can do is assign interactive input fields within an expansion. For example:

{{closingDate=?Closing Date}}

The above will take the variable ‘closingDate’ and will only appear when the user is prompted, elsewhere within the variable, to input text using the {{?Closing Date}} marker. Very clever. Typinator is getting you into the mechanics of scripting in a very easy way!

CALCULATIONS

So when you purchased Typinator, were you aware that it had the ability to be able to function as a calculator and automatically expand mathematical calculations? No? Nor was I! It was only when I saw it discussed on a forum that I realised this and the automation part of my brain starting thinking of ways that this could be useful. 

Before I move on to how I’ve been able to add calculations to my workflow, let’s go over the basics of how they work. 

Calculations are reliant on the use of the number sign (#) in their creation. Let me show you an example below: {{#dailyrate*totaldays}} 

The calculation above will workout the calculation based on two pre-defined variables - dailyrate and totaldays. So where have these variables been pre-defined? Well, they may have already been given values during another abbreviation. You see Typinator is very clever in that once you have assigned a value to a variable, that value will stay, even if the machine is rebooted. Pretty clever huh?

You can move this a step forward and assign a calculation value to a completely new variable:

{{amountdue=#dailyrate*totaldays}}

Now it’s important to know that when the above expansion is performed, it will not present you with an output. No sir. That is not the way that variables work. All you are doing is telling Typinator how to perform a calculation should it ever be required in an expansion in the future. 

So let’s move this forward a bit to clarify a little more. 

{{dailyrate=?dailyrate}}{{totaldays=?totaldays}} {{amountdue=#dailyrate*totaldays}}

The amount payable is £{{amountdue}}

OK, what have we done above. Well, in the first line, you can see that we have asked to manually input the values for both Daily Rate and Total Days. The second line sets a value for the amountdue variable. Remember, this doesn’t produce a visible output. Typinator is merely making a calculation for itself later, should the {{amountdue}} variable ever appear. In the third line, we want to see the output of this calculation so we place it into a visual expansion, with the calculation appearing after the £ sign. 

I use this when creating invoices for my clients because with a few simple keystrokes, I’m able to produce a nice, detailed invoice with the day rates, VAT amounts, total payable etc calculated and filled in as I go. 

How would displaying the VAT amounts work? Well, something like the below would be handy:

{{dailyrate=?dailyrate}}{{totaldays=?totaldays}}

{{amountdue=#dailyratetotaldays}} {{vatdue=#amountdue/10020}}

The amount payable is £{{amountdue}} The VAT payable is £{{vatdue}}

I’ve entered a variable above, vatdue, that will take the output of the amountdue variable and perform a calculation based on it. It’s then available to be displayed in the bottom line of the expansion. 

Also, these calculations are not just to be used within the expansion that they have been created in. You can use these within other expansions as well. For example, VAT is set at a standard 20% in the UK, so I have one calculation for the amount of VAT to pay which doesn’t need to be modified within any other abbreviation at all. It hasn’t been changed since I started using the application. 

Let’s put some decimal points within the above expansion. Dead simple. 

{{dailyrate=?dailyrate}}{{totaldays=?totaldays}} {{amountdue=#dailyratetotaldays:2}} {{vatdue=#amountdue/10020:2}} The amount payable is £{{amountdue}} The VAT payable is £{{vatdue}}

The :2 that appends the amountdue and vatdue calculations will display the result to two decimal places. 

I also use Typinator to calculate the due date of the invoice. The following expansion works a treat for this:

Payment is expected in full by {{dayDelta=+30}}{NN} {D} {YYYY}

The above will write out the date 30 days from the time the expansion takes place, which is generally the date you are writing the invoice. You can of course set a reference date for this.

So you see how easy it is to build up an Invoice expansion, piece by piece, with Typinator? Just think of the hours it could save you just with that function alone.

Calculations are without doubt a very powerful feature of Typinator. There are downloadable extrasavailable from Typinators website that allow you to do even more with them. Wouldn’t it be good to have the Invoice expansion you have created above automatically calculate the amount in another currency? It’s possible. Let’s look at how to do it. 

CONVERTING CURRENCY

In order to convert currencies, you will need to download the Convert AppleScript from the Ergonis Support Site. Instructions for install can be found within the downloaded folder. 

Once installed, you are able to click on the (…) on the right hand side, select Scripts and then Convert.

If you follow the instructions fully you will also have Predefined Set installed called Convert Script Samples. 

Let’s take a close look at what we have in the Predefined set and see if we can make sense of it. 


What can we note from the above based on what we have learned so far. Well:

The conversion is kicked off by typing the abbreviation 1$? Into any window. 
The first line of text you will see will be:

    Today (August 28, 2014), one US$ is equivalent to:

Or whatever the equivalent date is. 

- A calculation is going to be performed. This is shown by the presence of the # symbol. 
- A script is going to be processed in order to provide a mechanissm for performing the calculation. This script is called Convert.applescript and is located within a folder called Scripts. It is not specified explicitly but we know that this Scripts folder is located within our Includes folder. 
- 1 US Dollar is going to be converted against eight other currencies, to two decimal places. The two decimal places is denoted by the presence of the :2 within the expression. 
 - The name of the currency that the dollar is being converted against will be displayed. 


Therefore, the output of the abbreviation 1$? Will be similar to the following:

Today (August 28, 2014), one US$ is equivalent to: 1.07 AUD (Australian Dollars) 1.08 CAD (Canadian Dollars) 0.91 CHF (Swiss Francs) 0.76 EUR (Euro, €) 0.60 GBP (British Pound, £) 60.44 INR (Indian Rupees, ₹) 103.73 JPY (Japanese Yen, ¥) 31.91 THB (Thai Baht, ฿)

So how is the script able to get the information required to perform this calculation? Well, an online currency converter is called as part of the process (https://www.google.com/finance/converter) so you will need to ensure you have a working Internet connection in order to perform this action. 

This is just one example of how this script can be used. Let’s look at the other scripts included in the Predefined Set and you should be able to get more of an idea as to how you can manipulate the script and these expressions to suit your own purpose. 

HOW MUCH IS THIS ITEM WORTH IN DOLLARS?

 

What we see here are variables in action. The * characters denote that the values need to be manually added, with the output coming out in US Dollars. 

For example, if we type:

5 EUR $$

We will be presented with the output:

6.61

Dependant on the current exchange rate of course!

WHAT IS THE CURRENT EXCHANGE RATE AGAINST DOLLARS FOR A SPECIFIC CURRENCY?

 

The expansion above takes that point and limits the output a little more, telling you exactly what a single unit of the currency you wish to convert is worth in dollars. 

EUR>$

$ 1.3211

So this is handy if you just need to know what the exact exchange rate is at any given time.

Can you get a list of more currencies? Indeed you can. What you will need to do is invoke the script with the following text:

{Scripts/Convert.applescript codes}

You will be presented with a long list of available codes for use. 

The posts I have made are by no means a complete ist of everything that is able to be achieved with Typinator - not at all. The team at Ergonis are innovating all the time, with new features and scripts beinfg released, so if you use the software, it is a good idea to keep checking their Download Extras site for new scripts and sets. 

 

Launch Centre Pro and OmniFocus

I'm going to take a brief amount of time now to talk about two of my favorite apps and how they can work together to help make your life just that little bit easier. These are Launch Centre Pro and OmniFocus. 

I've been using Launch Centre Pro in fits and starts now for the last few months yet I am also an avid OmniFocus fan. OmniFocus fits in so nicely with the whole GTD methodology that I honestly do not know how I would function effectively without it! 

As for Launch Centre Pro, it is a superb iOS app that is able to shortcut actions via the use of URL schemes in order to minimise the key presses that you need to make on your iOS device. For example, I use MoneyWiz to manage my personal bank accounts at home and when I need to register a new expense, rather than pull down Spotlight, search for MoneyWiz, open it,  find the New Expense button, I can simply open Launch Centre Pro, click the shortcut action I have created called MoneyWiz New Expense and away I go. 

OmniFocus is one of those applications that is used constantly if it used properly and so it is absolutely taylor made for some of these shortcuts to be created. Quite often you will find yourself inputting tasks that are similar in structure. Also, I quite like being able to go into Launch Centre Pro and being able to open a particular OmniFocus perspective at the click of a button. Therefore what I'm going to show you below is a list of the shortcuts that I currently have and iunstructions on how to create them.

Creating a Launch Centre Pro Action

Creating the action in Launch Centre Pro is reasonably easy. 

First things first, when the app is open, click the Pencil icon in the top right hand corner. This allows you to edit the current screen you are on by adding either Groups or Actions. A Group is essentially another page which will contain actions of a similar theme or application. Here, we will create a Group that will contain only OmniFocus actions. 


Once complete, you should see your OmniFocus Group appear. 

Next, click on one of the '+' icons to enter the Action Composer. Note that is is NOT possible to create a Group within a Group. You will see that here you can enter the action name as it appears in the Launch Centre Pro app and the URL scheme. Don't worry if the creation of URL schemes is too much for you at the moment, that's fine, because you will see that there is an Action Composer option just below. This allows you to select from a number of pre-defined actions that have been added to the application by the Contrast team. 

You can also change the Icon, schedule reminders for the action to occur as well as set up geolocation based triggers. These are awesome but I will cover examples of these in a separate post. Lastly you can change the default sound that plays when the notification goes off. 


Type in the name you would like to appear on the tile and the following URL as it appears in the screenshot below. This action, when clicked, will present a prompt box for you to enter then name of the action you wish to enter in OmniFocus.

2014-10-27 - 12-09 pm - screenshot3.png


Click Done and you will be taken back to your Omnifocus Group. 

This time, follow the steps above but instead of typing in the Name and URL straight away, click on Action Composer and we'll look at the various Default Actions we have to choose from. 

Click on Action Composer, then Featured Apps and you will see a list of all of the applications which have Default Actions already configured in LCP. Scroll down until you see OmniFocus and then, when you click, you'll be presented with four different pre-defined actions. Launch OmniFocus, New Item, New Item with Name and Note and Open Perspective. 

2014-10-27 - 12-10 pm - screenshot.png


Launch Omnifocus will merely open the app. If, like me, you already have OmniFocus on your Home Screen then this is fairly pointless. I don't use the New Item one as I generally input new items with Drafts 4, same with New Item with Name & Note. Open Perspective on the other hand, I do use a lot on LCP so click that. 

In a similar vein to the previous window, you will enter a name for the action that you would like to appear on your tile and the name of the perspective that you wish to open in OmniFocus. As you can see, I have a perspective called Reading in OmniFocus that will display a list of books or applications that I currently have available to read at the moment. 

Once you click Done, you will be taken to a screen that shows you how the URL scheme looks in full. The productivity maestros out there will be automatically thinking of ways they can input that URL scheme into TextExpander Touch so that they don't need to go through the keypresses involved with scrolling through the Featured Apps and can simply use the built-in Text Expander keyboard to create the URL schemes. 

2014-10-27 - 12-13 pm - screenshot-1.png

That shows you how to create the actions, however please find below a list of actions that I currently use because they represent frequently entered items in OmniFocus. For any entries on the move that I need to make that do not fit into one of the below templates, I generally use Drafts 4 to input them, but that is a story for another post. 

Set meeting with [name] – omnifocus:///add?name=Set%20meeting%20with%20[prompt]%20re%20


Buy [name] from supermarket - omnifocus:///add?name=Buy%20[prompt]%20from%20supermarket%20


Follow up on [task] with [name] - omnifocus:///add?name=Follow%20up%20on%20[prompt]%20with%20[prompt]


Email [name] about – omnifocus:///add?name=Email%20[prompt]%20about%20


Create Project Plan for – omnifocus:///add?name=Create%20Project%20Plan%20for%20

I have to emphasise that this really is just an intro into what can be done and I haven't dared try to see what can be achieved with the introduction of iOS 8. These were created a couple of months ago on iOS 7 so I daresay I will have an updated post in a few months - or at least I hope so!

I would also like to add that it is possible to create OmniFocus actions to show particular contexts, task lists and folders. Simply right click on the context, for example, that you would like to know the URL scheme for and select Copy As Link. Below is the URL scheme for my Errands context

-omnifocus:///context/jg_m83OUHrH

By creating a LCP shortcut using that URL scheme, I will be presented with a list of Actions available for that Context. Pretty sweet don't you think?

If you have any other actions that you'd like me to post, feel free to comment below. 

If you would like some more common URL schemes that you can create, please click on this awesome link to Michael Schechters site which also has a video showing how these links were created. I'll be putting my own up soon but won't expect it to be to this high standard Mike!

Thanks for reading. Stay productive. 

 

Typinator Part 5 - Advanced Abbreviations 1

In the last post we looked at creating basic abbreviations. Today, we are going to look at more advanced abbreviations and believe me when I say that this is where Typinator really comes into it’s own. 

AutoCorrection


In the Sets window, you will find the AutoCorrection set pre-loaded for you, with over 800 expansions for commonly misspelt words. You can create your own AutoCorrection entries in the same way you would add an abbreviation to a standard set. Click the ‘+’ button below the Abbreviation window and simply input the criteria for your expansion. 

Date/Time

Date and Time entries are fantastic and I use these an awful lot for time-stamping entries into notes, updates to to-do lists, etc. 

You will find the Day and Time settings in the {…} drop down (see below)


2014-10-16 - Date Time 1 Typinator.png

There are four general options for input here - Day, Month, Year and Time. 

Day


Using the image here, you can see that 4 will display the date, with no leading zero’s if it is anywhere between the 1st and the 9th of the month. 04 will give you the leading zero. Fri displays the day in an abbreviated format, whereas Friday will spell out the name in full. 78 (in year) will signify how many days have passed in the year and what todays date is in relation to that, without a leading zero. 078 (in year) will include the leading zero. 

Month


2014-10-16 - Date Time 3 - Typinator.png

Like above, 9 will display the month of the year in decimal form without a leading zero, 09 will present the leading zero. Sep is the abbreviated form of the month and September will spell it out in full. 

Year

Getting a lot easier now! I don’t think I need to explain this one in any lengthy detail. Or indeed, any detail at all. 

Time


Now this has got a lot more options, however they are all quite simple to understand. Given the information we know from above, it’s easy to glean that Hour (1–12) and Hour (01–12) will display the hour using a 12-hour clock, the former without a leading zero, the latter with. Following that, Hour (0–23) and Hour (00–23) will display the hour in a 24-hour clock format. AM/PM and am/pm will display in either capital or lower-case, dependant on which one you choose. If you would like to record the Minutes and Seconds of the timestamp, then select these. You can select the Time Zone Name (BST) with this option and if you would like to include the number of hours Offset from UTC, then select the bottom option. 

Day/Time Calculation

Typinator is clever and tries to cover as many scenarios you may require as possible. There is even the option to perform calculations based on the current day. 


These items perform simple calculations and let you temporarily adjust the date and time used by other markers. For example, the “+/- Day” item creates a marker {{dayDelta=+1}}.

The ‘+1’ value in the above example moves the date forward to tomorrow, however if you wanted the date to be this time next week, you could change the snippet to {{dayDelta=+7}}.


If you look at the example above, please note the following:



1 - The {{dayDelta=+7}} marker doesn't present any dara. what it does is perform a calculation that moves the current day forward by a week. There still needs to be an input afterwards to deliver some content for the date and time to be presented. 

2 - There are / characters between the {DD}, {MM} and {YY} markers. This is purely down to preference as that is how I like the date to be presented. If didn't put those / characters in and I typed the abbreviation, then the output I would have would be 151114 which is not nicely formatted at all. 

Date and time calculations are always relative to a reference date and time. Normally this is the moment when the expansion takes place. Instead of using the current date and time, however, you can set an explicit date and time with the “Set Reference Date” and “Set Reference Time” markers. 

“Set Reference Date” create a template in the form {{refDate=yyyy-mm-dd}}. Just fill in the desired year, month and day and then all subsequent date markers will refer to this reference date. 

The same principle applies with “Set Reference Time” marker. 

Text Files

As well as standard text, Typinator is able to include text files in expansions. In a default installation, Typinator shows a “Text” submenu in the {…} pop-up menu. 


If you select the first one, “Loren Ipsum”, Typinator will insert a marker {Text/Loren Ipsum.txt}, which refers to a text file that contains the infamous Latin placeholder text. When an expansion contains this marker, it will be replaced with the actual contents of the text file. This is a really handy technique if you have phrases that you want to use in many different locations but, if you need to make a change, you don’t want to have to modify it in lots of different locations. 

For example, you may have a signature for your email which is currently used with 4 different expansions. One that starts with Kind Regards, one with Yours Sincerely, one with Yours, one with Regards. All of them contain your name, website, contact details etc. 

If your contact details were to change, you would need to make modifications to four different expansions within Typinator. 

However, if all of these expansions were to point to one particular file that contains your contact details, you would only need to make a modification to the referenced text file if, for any reason, any of these contact details had to change. 

If you would like o make use if this feature, you will need to populate the ‘Includes’ Folder which is accessed via the {…} drop down menu.