Services step out in Snow Leopard
The Services menu in OS X has always been promising. In theory, it's a convenient way to perform common operations on files or text. For instance, you can select a file in the Finder, then navigate to Finder -> Services -> Mail -> Send File, and the file will be attached to a new e-mail message, just waiting for an address and delivery. Or select a chunk of text on a Web site in Safari, then choose Safari -> Services -> Make New Sticky Note, to create a new note containing that selected text.
Despite their apparent usefulness, however, I rarely use Services. And most users I talk to say they feel the same way.
One reason is that the Services menu is unwieldy. Any application that wants to can add an entry to it; as a user, I've had no way to say no. If I installed a third-party app and ran it once (something I do all the time for work), I might find new items in my Services menu, whether I wanted them there or not. Worse, there was no easy way to get rid of them. As a result, over time my Services menu became bloated with entries I rarely (if ever) used.
I've been complaining about Services for years. My only recommended solution had been a utility called ServiceScrubber, which let you delete entries from the Services menu. That solution worked fine until OS X 10.5, which featured something called code-signing. If you modified any of Apple's provided services with ServiceScrubber, that would break the associated application's signed code, and the app would have problems. So as of OS X 10.5, my Services menu was back to its bloated, useless self.
Snow Leopard, I'm thrilled to report, addresses these issues head-on. The result is that services are now not only really useful, but more powerful than in any prior OS X release.
Control the Services menu
End-users now have complete control over what appears (or doesn't appear) in the Services menu. That's because the Keyboard Shortcuts tab of the Keyboard System Preferences panel now has a Services section. There, you'll see a list of every service installed on your Mac, along with checkboxes to enable those you want and disable those you don't, plus an option to assign them keyboard shortcuts.
The only problem you may run into is that some services provided by third-party applications (such as BBEdit) may disappear from the Services menu when you upgrade the OS. If that happens, you need to manually re-enable the missing services, using the Keyboard System Preferences panel.
That aside, simply by adding Services to that preferences panel, Apple has finally given us the tools we need to manage this powerful and useful core OS X technology.
Another big change is that the Services menu is now contextual. That means it will show only those services that make sense for whatever you have selected. For example, if you select an image file in the Finder and then open the Service menu, you'll see only services related to working with images. Select text in an application, and you'll only see those that help with processing text. This simple change makes a huge difference in the usability of the Services menu. You no longer have to scan through a long list of grayed-out options; instead, you'll only see those that will work with the current selection.Those relevant services are also organized more clearly; they're grouped by function (Text, Searching, and so on), making the menu much more usable.
In addition to appearing on the Services menu itself, Snow Leopard's services are also supposed to appear on the contextual menu that pops up when you Control-click (or right-click) on a selection. In theory, for instance, you could select some text on a Web page in Safari, Control-click on it, then select the New Email With Selection service from the contextual menu. Unfortunately, due to an apparent bug in 10.6, this doesn't always work.
It turns out that these context menus will work for services provided by third-party applications (once you've re-enabled them). And it'll work for some Apple-provided Services—specifically, those listed in the System -> Library -> Services folder, which are independent of any specific application. You won't, however, see services for many other apps on these contextual menus. More significantly, even when they do work, these contextual menus don't show you all the services appropriate for a given selection. If you open the Services menu itself, you'll have many more services to choose from.
In practical terms, this means that—at least until this bug is squashed—you should use the Services menu, and not any context menus, to make sure that you're have access to all the services available for a given selection. I hope Apple sorts this out quickly.
Create custom services
There is one more change in Snow Leopard's Services—and I think it's the best one. Thanks to some modifications to Automator, you can now create Services of your own.
As you know, Automator enables you to create small programs to help with repetitive tasks. For example, you can create an Automator workflow that would compress, rename, and move a given folder, creating a simple backup application.
In OS X 10.5, you could save such workflow as a Finder plug-in; it would then show up in the Finder's contextual menu. But you couldn't access those workflows in other programs. In Snow Leopard, you can save workflows as services, which are then available anywhere that services are. You could, for example, create a workflow that makes changes to selected photos, then access it as a service in iPhoto. With a bit of work in Automator, you could create services to do your bidding in many common applications.
Apple has posted some Services tutorial pages, which should give you an overview of Services, as well as detailed walk-throughs for creating Services that launch applications, rotate images, sort selected paragraphs of text, and provide quick access to your Twitter page. After working through these tutorials, you should have a good feel for how easy it can be to create your own services.
If you'd rather not spend your time creating Services, you can wait for third parties to do it for you. In prior versions of OS X, Services were typically associated with just one application, and would be installed when you installed that app. For example, if you installed BBEdit in 10.5, you'd get two new BBEdit services (New Window with Selection and Open File). In 10.6, you'll still get those Services, but you might also be able to download additional BBEdit-related Services from Bare Bones Software (or anyone else who wants to write such things).
As an example, Apple provides quite a few free Services downloads. Browse that page, and you'll find Services (many accompanied by movie demos) that work with Terminal, Finder, the media picker, PDF files, photographs, movies, the Internet, and more. All can be freely downloaded, and you can open them in Automator so you can see exactly how they were written.
Given how easy it is for almost anyone to create Services, I think we're going to see a lot of downloadable Services to help tackle repetitive tasks many of us face daily. Add in the other changes to make Services more usable, and I think Snow Leopard is the first OS X release that will make Services accessible to everyone. If you've never used Services, Snow Leopard could be a good excuse to start. If you're a long-time Services user, I think you'll like the way Snow Leopard makes this tool even better.