Services item in editor menu on Mac

You can “easily” (for given values of easy) replace the services you need using Keyboard Maestro.
I have a very simple KM macro

  • it’s in a group that’s only active in Obsidian
  • The action simulates a copy keystroke, sends the variable over to an AppleScript call of SearchLink:
set myVar to do shell script "echo $KMVAR_LinkQuery"

set myString to do shell script "automator -r -i " & quoted form of myVar & " ~/Library/Services/SearchLink.workflow|awk '/http/{gsub(/^[ 	]*\"|\"[	 ]*$/,\"\"); print}'"

return myString

and voilà. I just use the same keyboard shortcut for this macro than for my SearchLink macro and I don’t see the difference.

It’s a hack, you need KM, but it works.

1 Like

Hi Obsidians!

After hours of getting know Obsidian (fantastic!) then customising and adjusting to my needs, I hit that wall too! What a sad disappointment…:crying_cat_face:
It is absolutely a must for serious daily research routines (including of course the celebrated ZotPick)

But, wait a moment :star_struck:, I said to myself, I developed several electron apps, and AFAIR all of them had that menu item! In fact, it is as easy as including this line:

{ role: 'services' },

in the menu template (developers will know).

You can even make it conditional (depending on the OS), like in this example:
https://www.electronjs.org/docs/latest/api/menu#examples

30 seconds of work, plus compilation time, definitely worth of it!
Please, consider this improvement.

I will come back to obsidian when services are back too, have no other choice. See you, hopefully!

2 Likes

@erbarium Interesting!

@ryanjamurphy Might it truly be this simple? If so, could it be tested in the next insider build?

No, not that simple. Obsidian offers its own context menu. This is what allows e.g., plugins to offer custom right-click options depending on the context of the click.

@ryanjamurphy Signal on macOS is also an Electron app, and like Obsidian it has its own context menu, and does support Services:

Count me in as another user dependent on macOS Services for my workflows, making Obsidian far less valuable that it would otherwise be on macOS. :disappointed:

The Services menu is how Automator workflows, Shortcuts, and services provided by third-party apps perform operations in general or on data in a specific context or application.

See Services in Apple’s Human Interface Guidelines.

I’m surprised it would ever not be available in any app, because it’s such an essential, system-wide function. Obsidian is the only app I’ve ever seen that doesn’t have a Services menu.

Sorry, I was specifically commenting on the idea of having a right-click available Services menu, as demonstrated by a screenshot earlier in this thread:

I was under the impression that accessing Services via the menu bar was not the same thing as accessing Services via the context menu. Is that not true?

@ryanjamurphy I haven’t used electron, but the documentation seems to suggest that the MenuItem class is used for both application menus and context menus. However, there are some macOs only roles that limit their implementation to the application menu.

services - The submenu is a “Services” menu. This is only intended for use in the Application Menu and is not the same as the “Services” submenu used in context menus in macOS apps, which is not implemented in Electron.

At the very least, is it possible for the Obsidian team to enable the application menu services option using the provided electron MenuItem class? This should enable hotkeys that use services to perform actions (i.e. I use services with automator scripts to quick-switch to my primary applications) while avoiding the question of services within the context menu for now.

After that quick fix, maybe it would be possible to implement services to the context menu by looking at how the electron-context-menu plugin achieves it (looks like a just adding the aforementioned MenuItem to the custom context options).

This will be worked on in v0.15.x.

3 Likes

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.