Opinion: The sad state of Services
Services promises the ability to easily do things with selected text, files, or folders in numerous applications. But the reality of Services has been quite different, according to Rob Griffiths. Fortunately, a fix is at hand. When OS X first came out, one of the “;really cool things”; about it was the Services menu. This global menu promised the ability to easily do things with selections (of text, files, or folders) in numerous apps. For instance, you could highlight a section of text on a web page, and then choose Text Edit: New Window Containing Selection from your Services menu. Presto! Instant new document in TextEdit, containing the text you had selected.
Going beyond Apple’s own applications, third-party developers can extend this functionality by installing services of their own—so your FTP application, for instance, could add a service to upload the selected file from the Finder. Such was the promise of Services. The reality has been much different—at least for me. (And apparently, I’m not the only one with the problem, if this question to the Mac 911 blog is any indication.) From my seat, the Services menu is one of the most bloated, least-used, and most overrated features in OS X. So what went wrong, between the promise and the delivery? And what can be done to save the Services menu?
What's not to like?
There are two main issues with the Services feature that really affect its usability:
Issue #1: Services aren't available in all applications. Items in the services menu are, for the most part, only available in applications written in Cocoa—programs such as Safari, Mail, OmniWeb, TextEdit, and Stickies. There are some exceptions—some Carbon programs such as BBEdit and the Finder itself also support services. Java applications, however, don't support them at all. And since there's no easy way to tell what language a given program was written in, there's no way to tell if the Services menu will be available or not when you need it. So instead of relying on the Services menu to be available, I wind up ignoring it instead, since I'm not sure when it'll actually work.
Issue #2: The Services menu is out of the user’s control. This is actually my biggest gripe with the Services menu. When you first install OS X, you’ve got a nice, short, sweet services menu, as seen here:
From pretty much that day onward, however, your Services menu will never be the same. You see, every time you install an application, it may (or may not) add things to your Services menu. As a user, you might think this is something you have control overbut you’d be wrong. Services within third-party applications are automatically detected and installed by OS X when you either install those applications, or use them for the first time. You not only have no say in this process, you’re not even notified when the menu is modified, and there’s no simple way to remove items that have been added to your Services menu—other than removing the application providing those services.
So over time, your Services menu grows…and grows…and grows. As an example of how out-of-control things can get, here’s the Services menu from my main machine. I had to make it a movie, because, well, you’ll see that a screenshot really wasn’t possible. Wow. Try using something from that menu with any regularity! In case it went by too quickly for you to count, there are roughly 80 entries in the top level menu, and something over 135 more options are buried in submenus. Good thing it’s filled with Services that I use all the time, too, such as these from both Apple and third-parties:
- Call of Duty -> Perform Command
- ChineseTextConverter -> Converted Selected Traditional Chinese File
- Disk Utility -> Calculate Image Checksum (MD-5)
- Locator -> RegExp Locate
- MiniCalc -> Append or update result
- OnlyMortal -> Add Selection as Servers
Unfortunately, as noted above, the only Apple-approved way to get rid of the Services is to get rid of the apps themselves—not a good option for something like Disk Utility. And besides, I actually use most of the apps that provide Services entries; it’s just their Services that I’d like to remove. There is a method to remove these Services entries, but it involves editing files within each application that provides a Service you’d like to remove. Not exactly user friendly, and quite labor intensive.
As a user, I resent the fact that I have no say in how my Services menu is used—the Mac OS lets you know when you install a widget, and it’s very hard to have an application mysteriously appear in your Applications folder. But the Services menu? A different story; it’s a virtual dumping ground of things that I’ll seldom use, yet over which I have no control. Please, Apple, give the user control over the Services menu!
Take back the Services menu
After trying one more time to make regular use of the Services menu, and failing miserably, I set out in search of a solution. I started on macosxhints.com, where I found an older hint that contained a shell script to help manage the menu. But this didn’t seem very Mac-like, and it doesn’t have the most efficient interface.
Still searching, I found a reference in a comment to a beta of something called Service Manager, from Blacktree, the makers of Quicksilver. However, when I tried it, I found that it seemed to hang at various spots. It’s also a beta, and doesn’t appear to have been updated since 2003.
While writing this particular rant, and fruitlessly searching for a solution, I happened to mention my displeasure with the monstrosity that is the Services menu to Peter Maurer, author of Butler. Peter seemed intrigued, and quite amazingly, no more than a day or so later, I found a rough-but-functional version of a Services manager in my in-box.
After some testing by myself and a few others, and some additional revisions by Peter, he has unleashed the first version of Service Scrubber for general consumption. This donationware utility finds all the items in your Services menu, and lets you disable any or all of them with a few mouse clicks. In addition, you can even move entries around in the list, and easily change their assigned shortcut keys. The interface is a simple list of the Services menu items; you can either work by changing the overall menu itself, or by modifying a given Service within the menu:
Even better, any and all of your changes are completely reversible with the click of mouse button—the circled triangle in the above screenshot will revert the changes for that service. Once you have things set to your liking, click the Save button, and your newly-trimmed Services menu will be active. So after about five minutes worth of work with Scrubber, my Services menu went from the useless-as-heck object shown in the above video clip to this:
So much nicer! With a nice short menu, I’m actually able to use the Services menu now…and I’m much more likely to notice any additions, making it easy to keep the menu nice and trim using Service Scrubber. Please note that, other than providing the initial concept to Peter and helping to test, I am in no way associated with the product; I’m just happy there’s finally something that gives control of the Services menu back to the user.