The Robservatory

Robservations on everything…

 

The useful yet useless Services menu

One of the most-useful tools in macOS is also one of the most useless: The Services menu. In theory (and occasionally actually true), the Services menu lets you quickly take action on something—a selected file or folder, or a chunk of text. In reality, the Services menu is a vaste wasteland of unused functionality, and a place where pre-assigned keyboard shortcuts go to hide from your attempts to use them elsewhere.

If you install a fair number of apps on your Mac, you may be surprised by the amount of stuff in your Services menu. Here’s a look at my iMac, after I reset the Services panel (System Preferences → Keyboard → Shortcuts → Services) to its defaults:

If you’re good at counting, you spotted 123 separate services flowing past. Not all are active, of course—”only” 58 are. Of those 58, you’ll see some subset based on whatever you’ve selected…but even that subset can present itself as a huge list:

That’s really not very helpful when you want to quickly apply some action to your selection. To make the Services menu useful again—and to potentially free up some keyboard shortcuts—you’ll need to actively manage your Services.

The reason you have to actively manage the Services menu is that any app can add one or more services without any sort of notification to you, the user. Install a handful of apps to test out, and you may find they all add one (or more) entries to your Services menu. I’d really prefer to be in charge of the Services menu: If an app wants to install a Service, it should have to ask my permission first.

At least Apple has made the Services menu relatively easy to manage—this wasn’t always the case; our old freebie app Service Scrubber allowed users to disable and enable Services, and add or change their keyboard shortcuts. With the release of OS X 10.6, Apple added these same capabilities to the Services section of the Shortcuts tab of the Keyboard System Preferences panel.

Head there now, and start unchecking all the Services you’ll never use. Pay particular attention to Services with predefined keyboard shortcuts—even if they’re on a Service you use somewhat regularly, you may want to remove the shortcut for use on something you use even more often (like a global macro or as a hot key in another app).

I’m pretty brutal about culling my Services menu; when I’m done, this is all that’s left:

  • New Terminal at Folder
  • New Terminal Tab at Folder
  • Folder Actions Setup
  • Reveal in Finder
  • Show Info in Finder
  • Look up in Dictionary

And that’s basically it, though I do also have some Name Mangler Services I’ve created for common renaming tasks. Of the remaining Services entries, I use them so rarely that it’s not worth cluttering the menu with their presence.

One advantage to keeping the list of active Services short is that it will be shown at the top-level of the contextual menu, instead of being shunted into a sub-menu:

Unfortunately, your nice neat Services menu won’t survive very long, due to that “any app can install Services without telling you” feature. So schedule regular visits to the Services section of the Shortcuts tab of the Keyboard System Preferences panel to keep things clean. Maybe macOS 10.13 will give us the ability to limit Services additions, though the cynic in me thinks it’s more likely they’ll just remove Services altogether.

6 Comments

Add a Comment
  1. Thanks for all your great observations, Rob. I’ve read you for decades. I see you have/had a service called rearrange date. I want that! Figured out that it’s from NameMangler, but how do you build it? And couldn’t I do the same with automator? I desperately want screenshots to be dated 170224 instead of 2017-02-24, but I don’t know how to build a script for that. I used to use SnapClip because I could choose my own naming convention for screenshots, but not any more. Advice?

    1. Assuming each file is named like this…

      yyyy-mm-dd filename.jpg (or .tif or whatever)

      …then this would work in Name Mangler:

      Find: ([\d]{2})([\d]{2})-([\d]{2})-([\d]{2})\ (.*) 
      Replace: $2$3$4 $5

      Make sure “Query is a regular expression,” “Ignore case,” and “Keep extension intact” are all checked. Then you can choose File > Create Context Menu Service to turn it into a service.

      How it works: The () capture bits of the filename into variables, where the first set of () becomes $1, the next $2, etc. I split the four-digit year into $1 and $2 (and just drop $1), then just parse for hyphen, two-digit month ($3), hyphen, two-digit day ($4), a space, then everything else ($5).

      The replace is easy, just the four variables you want to keep with a space between the date and filename. (Something similar might be possible in Automator, though I’m not sure about its support for regular expressions.)

      Hope that helps!

      -rob.

  2. Oh, thank you so much, Rob! Somehow, I never even thought to try Automator, but it worked. I set up a folder action with similar parameters to your suggestion. Works perfectly!

  3. Sure would be nice if somebody would create a Sierra compatible replacement for Services Manager :)

    1. Sadly, it’s not possible, as such an app would violate system integrity protection.

      -rob.

      1. That’s why automation prerogatives are being phased out altogether, I’m afraid. Fortunately, the pendulum usually swings back and forth between favoring security and favoring convenience, unfortunately people of my age may not be around long enough to see it swing back. (Do I sound like Maxwell Smart?)

Leave a Reply

The Robservatory © 2017 Built from the Frontier theme