OS X Hidden Treasures: Services
Services are one of the oldest ways of extending OS X’s capabilities, dating all the way back to NeXTSTEP, the operating system Apple bought in 1997 and turned into OS X. But there’s a good chance you’re not aware of services, or have forgotten about the Services menu, since it’s easily missed, tucked away as it is in the application menu for most apps. Since that menu mostly contains command like About, Preferences, and Quit, many people never look through it closely.
The simplest way to explain services is that they’re a way to invoke features of one app from within another app. Here’s an example. Let’s say you want to email a snippet of text (like a passage from a helpful TidBITS article on our Web site) to a friend. Here’s how most people would do that:
- Select the text.
- Copy the text.
- Switch to Mail.
- Create a new message.
- Paste the text into the body of the message.
Here’s how to perform that same task using a service. In this example, I’m viewing the desired text in the Google Chrome Web browser, but this built-in service works in most OS X apps:
- Select the text.
- Choose Chrome > Services > New Email With Selection.
This creates a new message in Apple Mail with the selected text, in fewer than half the required actions.
What’s great about services is that they work in many OS X apps and with all sorts of objects, like selected text, graphics, files, and folders. The Services menu is contextual, so what you see in it depends on what’s selected. In the Finder, the Services menu also appears at the bottom of the contextual menu that appears when you Control- or right-click on a file or folder.
Managing Services — To see and manage all services, open System Preferences > Keyboard > Shortcuts > Services. Apple presumably chose this somewhat odd place for services because services can also be invoked with keyboard shortcuts.
Once in the Services view of the Keyboard preference pane, you can check and uncheck services to enable or disable them. To save even more time, you can add keyboard shortcuts to commonly used services. Select a service, click Add Shortcut, and press the desired keys. It can be tough to find a simple keyboard shortcut that isn’t already claimed by the Finder or another app, but I’ve found that Command-Option-Control, followed by a letter, usually works. Some services come pre-configured with their own keyboard shortcuts, which can be annoying if the service’s shortcut takes over from a command’s shortcut in a particular app — just redefine the service shortcut to resolve the conflict.
Frankly, the built-in interface is pretty bad, because you can’t expand the System Preferences window to accommodate a lengthy list of services or long service names that end up being cut off. Happily, there’s an alternative, a utility called Services Manager from MacOSXAutomation.com. It’s old, and thus a little fussy to install, but it still works fine.
Once you’ve downloaded and expanded the file, Control-click the Services Manager Installer.pkg, and choose Open from the contextual menu. This is necessary if you have Gatekeeper set to allow only apps from the Mac App Store and identified developers. Once you allow it to run, you can work your way through the installer, which places the Services Manager app in the Utilities folder inside your Applications folder.
Launch it, and you can see that it offers a simple interface for enabling and disabling services and assigning keyboard shortcuts. Since its window is resizable and you can show only services in specific categories, it’s far easier to use than the standard interface.
If you want to get rid of a service entirely, so it no longer shows up in the list in the Services view of the Keyboard preference pane or in Services Manager, Control-click it in either, and choose Show in Finder/Reveal in Finder. For services that are Automator workflows, the ~/Library/Services folder will open, and you can just move that service to the trash (Services Manager also has a Move to Trash command in its contextual menu). But for services provided by apps, choosing Show in Finder identifies the app containing the
service, and the only way to eliminate the service is to delete the app. You also can’t delete services built in to OS X.
Adding More Services — OS X ships with quite a few services, but if you want to expand the number of services in your Mac’s repertoire, the good news is that you often don’t have to do any extra work to install them, since many come with apps. Here are just a handful of apps that include their own services: BBEdit, Ember, Evernote, GraphicConverter, Nisus Writer Pro, TextExpander, Scrivener, Twitter, and Vox. There are undoubtedly hundreds or even thousands more.
Unfortunately, it’s easy to end up with services that are broken, due to having been installed by old or obsolete apps. For instance, I discovered an Open with Pixelmator service, which was exciting because Pixelmator is my second-favorite image editor (after Preview). Sadly, Pixelmator’s service doesn’t work, but I’ll explain how to work around this.
You can also download and install standalone services. One of my favorites is DEVONtechnologies’ free WordService package, which includes a slew of useful services for working with text, things like changing the case of selected text, inserting dates, trimming lines, and showing statistics. Download the WordService package, expand the .zip file, copy the WordService app to your Applications folder, and finally double-click the WordService icon to install the necessary services. You can then enable the included services in Services Manager or System Preferences > Keyboard > Shortcuts > Services, under the Text heading.
For fans of the Markdown text markup language, Brett Terpstra (with help from Joe Workman) offers Markdown Service Tools that help you create links, format text, and even convert between HTML and Markdown.
Installing Markdown Service Tools is a bit more involved than WordService. After unzipping the package, open the MarkdownServiceTools2.12 folder. You’ll see a whole mess of services, 33 all told. To install just a few, select them, and either double-click one or press Command-O. For each, OS X asks you if you want to install it or open it in Automator. Alternatively, in the Finder, press Option and choose Go > Library, and then open the Services folder. Drag the services you want to install from the MarkdownServiceTools2.12 folder. Either way, I recommend installing only those you need and understand, because otherwise the list is overwhelming.
Make Your Own Services — If you can’t find a service you want, you may be able to make your own if you’re handy with Automator. In Automator, select File > New, and when prompted to choose a type, choose Service. The possibilities here are nearly endless, but you don’t have to memorize Joe Kissell’s “Take Control of Automating Your Mac” to get started (although it’s an excellent reference if you want to learn more).
Here’s how to recreate that aforementioned Open with Pixelmator service:
- After you’ve started a new service in Automator, search for the Open Finder Items action and drag it into the right-most pane.
- Set the Service Receives Selected pop-up menus to “files or folders” in “any application.”
- In the Open Finder Items action, choose Pixelmator (or whatever app you choose) from the Opens With pop-up menu. If you’re confused, just mimic the screenshot below.
- Save your service and give it a descriptive name. I named mine “Open with Pixelmator — Custom” to distinguish it from the broken one that ships with Pixelmator.
Now, when you select a file or folder in the Finder and open the Services menu, “Open with Pixelmator — Custom” will be an option. You can also assign a keyboard shortcut to your new service too. I set my shortcut to Command-Option-Control-P, so I can select an image in the Finder and press that hotkey to open the image in Pixelmator. Again, you can modify this simple Automator service to open selected files in any application you choose.
Services are an excellent way to tie apps together in OS X, and they’re one of OX X’s hidden treasures, a feature that too few people think about and that suffers from Apple’s benign neglect. Nonetheless, services can make you more efficient with the apps you’re already using, and for those of you who already rely on services, let me know in the comments which services you find most useful.
Thank you Josh! This kind of serendipitous hidden treasure is one of the things I love about Tidbits!
Thanks for the article
One observation: I was trying to duplicate the select text and generate an email message within Safari
I was in Reader View and tried the selected text to email service. I was taken to Mail and a new message opened BUT the selected text never arrived and Mail was frozen. I had to Force Quit Mail to get out of the Mail application
However, when working in Mail without going to Reader View the service worked
For adding your own services, I’d suggest checking out On My Command: http://free.abracode.com/cmworkshop/on_my_command.html
Great article, also the kind I am expecting from Tidbits ! Special kudos to DEVONTech for their hidden gems : calservice and wordservice.
Open URL in iCab -- shift-command-U -- I use this service every day! (URLs normally open in Safari.)