I've been struggling this morning trying to associate an application with a custom protocol, namely emacsclient and org-protocol.
I'm calling this protocol from a webbrowser bookmarklet, and I get the following behaviour :
In chromium,
the "Launch Application" dialog comes up, and calls xdg-open org-protocol://… which ends up firing a new chromium frame.
In firefox,
I've tried setting network.protocol-handler.app.org-protocol to an empty string or my emacsclient path, anyhow I get the following error message :
"Firefox doesn't know how to open this address, because the protocol (org-protocol) isn't associated with any program" without even showing any external application selection dialog.
I'm not using any desktop environment, so I need to make this work strictly with xdg, however, despite reading the shared mime info spec etc, I still can't fathom a working configuration.
Best Answer
The XDG method: Create an
emacsclient.desktop
file that handles thex-scheme-handler/org-protocol
MIME type:(Note the
MimeType=
line above, which is fororg-protocol:
URIs.)Put the file in
~/.local/share/applications
or/usr/local/share/applications
.You might have to open the file
~/.local/share/applications/mimeapps.list
and add a line like this:Add that under the
[Default Applications]
section.