Org Capture from External Applications

Posted by:

Capture Links/Contents from Web Browsers or Other Applications


Solution 1: From official org-capture site

The following is adapted from here.

  1. Emacs setting with the following code.

  2. Linux system setup (for KDE)

    org-protocol.el – Intercept calls from emacsclient to trigger custom actions

  3. Firefox setup

    Please refer to and use “org-protocol” as protocol for Firefox.

    To actually use org-protocol add a bookmark to Firefox or Opera.

    Here is the URL to use as “Location” for browser bookmarks. Just remove the line breaks and replace “sub-protocol” with the real sub-protocol to use:

Solution 2: Firefox plugins -the easiest way if you only want it to work with Firefox.

  1. Install the Firefox addon from here; source code link here.
  2. Configure the addon.


  3. Set up a capture template

  4. Highlight some text in Firefox and your fire shortcut key C-M-r, you should see a Emacs client popup with all the capture info.


Solution 3: Registering Org-Protocol with XDG-open

update: There is a plugin now for this method, see here for details. 05/07/2017-01:41:46 PM This method should work with other browsers (e.g. Chrome, and firefox etc) and applications (e.g. Acrobat), and it is a clean way of getting xdg-open (a tool for configuring default applications in Linux) to open org-protocol links and pass them to emacs. adopted and modified from those two links link1 , link2 and Registering Custom URI Handler

  1. Add .desktop file, Create and save a file called org-protocol.desktop to ~/.local/share/applications containing:

  2. Add org-protocol handler – for more about: Registering Custom URI Handler

  3. and run,

    This step makes Firefox aware that “org-protocol” is a valid scheme-handler or protocol (by updating ~/.local/share/applications/mimeinfo.cache), and causes Firefox to prompt for a program to use when opening these kinds of links.

  4. Add config settings to dot-emacs file,

    plus the capture template as in Solution 2/Step3.

  5. Add Firefox bookmarklet with following javascript


    Note: 1. Bookmark Toolbar/New bookmark (with right click) to add bookmarklet 2.the w (in the javascript) is the shortcut key for the capture template.

  6. Select some text in a website and click on the Boolmarklet you just created. add the “/usr/bin/emacsclient” program if prompted.
  7. You should see the beautiful popup as in Solution 2 step 4.

Google Chrome or Chromium

Note: only tested Chrome here.

  1. Follow step 1-4 in Solution 3.
  2. Right click Bookmark Toolbar and Add a page to add a Bookmarklet (reference)
  3. Follow step 6 and 7 in Solution 3, you should see popped up Emacs windows with captures.


For store-link to work in Firefox and Google Chrome

  1. Follow step 1-4 in Solution 3.
  2. Add Bookmarklet for store-link with following javascript (updated May 2020).

  3. use C-y to insert store-link in Emacs after invoke it in your Browsers.

Adobe Acrobat Reader (update, finally working with help of RLM)

  1. Adapted from
  2. Place a javascript file for each menu entry in ~/.adobe/Acrobat/9.0/JavaScripts on unix-like systems. org-store-link.js from

    org-capture.js from

    Note: is used get the page number index.

  3. The examples given here will place new menu entries in the “Tools” menu, after restarting Adobe Reader.


  4. check Enable Menu Items JavaScript Execution Privileges under Edit > Preferences > Javascript Otherwise, internal error messages.
  5. Create a capture templates in dot-emacs file

  6. Assign Evince for opening PDF file at captured page

    Note: Acroread is incapable of deciphering its own page indexing system. Evince -i (NOT p) is employed to navigate to the target page correctly.

  7. Capture PDF file link with page index.


    Issues: Each triggers two FireFox windows popups (if FF is open) with a error message. Sometimes triggers double capture too. Acrobat sorely lacks of Selection Object, so the selection capture as in Browsers seems not possible, which is minor since a simple copy-and-paste takes care of it.


Add a Comment