2

When one right-clicks selected text on a Mac, one is presented with various contextual menu items. Is it possible to rearrange these items?

Specifically, I would like to move the last item in this menu, which is a Service I created in Automator.app, to the top (or somewhere near the top) of the menu.

1

I don't think that it is possible to reorder Services in the context menu.

Here is the predefined order of Services in the contextual menu:

  • Local services (those available to all users).

  • The user's services.

  • Base system services.

  • Services that are loaded from the various applications that may have them.

  • Contextual menu plugins (located in the various /Library/Contextual Menu Items folders).

The Services in the context menu are sorted in reverse alphabetical order.

Apple is so strange sometimes.

I don't know if others are the same way, but my brain is not sharp enough to quickly, mentally run through the alphabet in reverse. It probably takes me three times as long to scan through a list to find what I want (when a list is in reverse alphabetical order).


I have one (admittedly unsatisfying) workaround to order one's Services alphabetically.

In Finder, navigate to:

/Users/Me/Library/Services/

This is where one's custom Services are necessarily saved.

Sort the files in reverse alphabetical order in Finder by clicking on the "Name" header. First, rename the file that starts with the letter in the alphabet that is closest to Z. Specifically, add spaces to the front of the Service name. For this Service in particular, the number of spaces that precede the name should be equivalent to the total number of custom Services in this folder, minus one.

Do this for all of your Services, adding one fewer space to the front of the filename as you progress, until you reach the file that starts with the letter in the alphabet that is closest to A. You can leave this file alone; the filename should contain no leading spaces. The more spaces that a filename begins with, the closer to the bottom of the context menu that that Service appears. You want this Service to appear in the very first slot. Thus, no space.

In short, one can use spaces as an informal way of manipulating the context menu's ordering of Services system-wide.

Once these updated titles appear in your context menu,*(see my below note) they will finally be in alphabetical order. The downside to this workaround, of course, is that now your context menu looks like the side profile of a staircase. Visually, it looks like each Service is nested within the previous Service, which may or may not bug you more than having your Services ordered in reverse.

Me? I would rather have the staircase.


*The process of how Service names are reflected in the context menu, in my experience, is haphazard. Sometimes, the Service title updates immediately after I change its filename in Finder. Other times, even after I restart my computer, the new name doesn't show up in the context menu.

I have found that the method that I describe here is the only 100% reliable way to have a new Service name reflected in the context menu.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .