Support
Please provide all Captee feedback on the Mac App Store.
FAQ
Why is Captee not in the Share menu?
When Captee is first installed, you will need to enable the permission to let it be included in the Share menu. The following steps illustrate how to enable Captee for the Share menu.
1. Select Edit Extensions… from the macOS Share menu. This will launch macOS Settings and raise a pop-up window.
There are no actions to be done in the pop-up. Press the Done button at the bottom of the pop-up window to dismiss it.
2. Select Added extensions.
A pop-up window showing 3rd-party extensions that can be enabled for sharing is raised. Captee should be listed with its Sharing checkbox unchecked.
3. Enable the checkbox for Sharing for Captee and select Done to dismiss the pop-up window.
Success! Captee is now enabled in the macOS Share menu.
Where is the native macOS Share Menu on Chrome and why can't I share selected text from it?
Chrome puts the macOS Share menu in the top-level menu bar File > Share. Some history on why it was put there: 465302 - Introduce system Share menu item on OS X - chromium
Sharing selected text is long-standing request on the Chromium team. Ticket here: 916291 - Add Share to context menu on macOS - chromium
What kind of formatted text can be exported to Markdown or Org Mode markup?
Captee supports translating styled text (for example bold, italic, code, underline, strikethrough) and lists to Markdown or Org markup. Headers however are not supported, as macOS does not provide this information in formatted text that is exchanged through the clipboard.
What is Org Protocol?
Captee can share a link or content directly to Emacs through the use of Org Protocol. Org Protocol is a means for external applications to share content and trigger actions to Emacs Org Mode via a URL scheme.
How do I get Org Protocol capture working with Captee?
To capture selected text via org-protocol
you’ll need to define a capture template on the Emacs side first before you use Captee. Here’s an example capture template using the key "a" that uses the placeholders described in the Org capture protocol.
1 2 3 4 5 6 |
|
Template placeholders you can use in a capture template are as follows:
Placeholder | Description |
---|---|
%:link |
The URL |
%:description |
The webpage title |
%:annotation |
Equivalent to [[%:link][%:description]] |
%i |
The selected text |
Learn more about capture templates at the official Org website.
What macOS builds of Emacs work with Captee's Org Protocol support?
At current (2023-05-05) only builds which use the Mitsuharu Yamamoto fork of Emacs will support Org Protocol natively. Native Org Protocol support means that support for handling the custom URL scheme org-protocol://
is configured and code-signed into the Emacs app bundle.
Known builds of Emacs that support Org Protocol natively are available at the following links:
I use Homebrew Emacs Plus. How do I get Org Protocol working with Captee?
Out of the box, Emacs Plus does not directly support Org Protocol URL handling on macOS. This is a known issue as described in the following ticket.
Enable org-protocol support out of the box · Issue #285 · d12frosted/homebrew-emacs-plus
Why doesn't Captee use emacsclient
to work with Org Protocol?
A core feature to Captee is its ability to be in the macOS Share menu. Apps in the Share menu must be app sandboxed, effectively requiring that such apps be distributed on the App Store. However, app sandboxing also effectively prevents Captee from supporting Org Protocol via emacsclient
because emacsclient
operates outside of Captee's sandbox.
Really? Tell me more about why sandboxed apps can not use emacsclient
From the Emacs side, Org Protocol is supported from two approaches:
- via
server.el/emacsclient
which can require access via:- Unix local domain socket
- TCP socket
- via custom code that implements the
org-protocol
URL scheme natively. This is done in the Mitsuharu Emacs build.
App sandboxing prevents either the Captee host app or share extension from directly accessing the emacsclient
executable on the file system without forcing the user to directly access said file as described in Troubleshooting AppKit File Permissions. Our opinion is that such direct access is really not tenable from an ease-of-use lens.
An alternate approach was explored of directly building a client that talked to the local domain socket used by Emacs server.el
. Problematic with this approach is that the local domain socket is by default put in an area that is inaccessible to a sandboxed app. Again, not using sandboxing is untenable as sandboxing is required to deliver a macOS share extension.
Configuring Emacs server to use TCP is also problematic as it by default also requires filesystem access to support authorization. Although defining a static authorization key is possible, for now our opinion is that such configuration is untenable from an ease-of-use lens.
Known Issues
- Support for converting formatted text to markup syntax (Org Mode, Markdown) is TBD.
- Sharing selected text from Safari will not copy over formatted text (this is an Apple bug).
- When sharing selected text from Safari, the URL link and title of the web page is not copied over.
- Sharing selected text from Chrome is not supported (this is a Chrome bug).
- App Help menu not yet supported.