[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Orgmode] Org-protocol / Chrome on Linux
From: |
Mattias Jämting |
Subject: |
Re: [Orgmode] Org-protocol / Chrome on Linux |
Date: |
Thu, 25 Nov 2010 00:23:43 +0100 |
Hello again,
For reference, this is how i finally got org-protocol to work in
chrome on ubuntu 10.10:
The problem was that chrome was running xdg-open for handling external
protocols. xdg-open, or it's companion gvfs-open, couldn't parse the
rather complex URL which the org-capture bookmarklet generated.
So i realized that xdg-open is just a shell-script so then i modified
the function open-gnome() in it like this:
open_gnome()
{
# Handle org-protocol
if (echo "$1" | grep -q '^org-protocol://'); then
emacsclient "$1"
else
# This is the standard way...
if gvfs-open --help 2>/dev/null 1>&2; then
gvfs-open "$1"
else
gnome-open "$1"
fi
fi
...
}
Suddenly all works. Remember to back-up xdg-open if you want to try this.
Mattias
2010/9/30 Sebastian Rose <address@hidden>:
> Sebastian Rose <address@hidden> writes:
>> Mattias Jämting <address@hidden> writes:
>>> Yes i'm running a pretty standard Ubuntu 10.04 setup.
>>>
>>> I managed to get it working on chrome by removing the
>>> encodeURIComponent command on location.href.
>>>
>>> I could simulate it in the terminal like this.
>>>
>>> address@hidden:~$ xdg-open org-protocol://capture://http%3A%2F%2Forgmode.org
>>> Error showing URL: Operation not supported
>>> address@hidden:~$ xdg-open org-protocol://capture://http://orgmode.org
>>> address@hidden:~$ (worked)
>>>
>>> Strange that it worked in FF. Maybe Chrome and FF encodes URIs differently?
>>
>>
>> Ooops!
>>
>> I just was going to blame Google.
>>
>> Looking into the ECMA standard, I found this:
>>
>> 15.1.3 URI Handling Function Properties
>>
>> ... ...
>>
>> A URI is composed of a sequence of components separated by
>> component separators. The general form
>> is:
>> Scheme : First / Second ; Third ? Fourth
>>
>> where the italicised names represent components and the “:”, “/”,
>> “;” and “?” are reserved characters used as separators. The
>> encodeURI and decodeURI functions are intended to work with
>> complete URIs; they assume that any reserved characters in the
>> URI are intended to have special meaning and so are not
>> encoded. The encodeURIComponent and decodeURIComponent functions
>> are intended to work with the individual component parts of a
>> URI; they assume that any reserved characters represent text and
>> so must be encoded so that they are not interpreted as reserved
>> characters when the component is part of a complete URI.
>>
>>
>> That document states "encodeURI" is to be used with complete URIs (as
>> the name says...). Funny. Chrome is the only browser that works like
>> that :)
>>
>> I'll go and adjust the docs.
>>
>>
>> Thanks for your Report!!
>>
>
>
>
> Actually --- errr --- there is nothing to adjust. The docs are exactly
> right.
>
> This is because of some örfflkjsgs in xdg-open.
>
> No one ever said something about xdg-open. Org-protocol is supposed to
> work with emacsclient:
>
> address@hidden:~$ emacsclient
> org-protocol://capture://http%3A%2F%2Forgmode.org
>
>
> works.
>
>
> Sebastian
>
>
--
Mattias Jämting www.jwd.se |address@hidden| 070-6760182
Internet, Coding, Design, Usablility - since 1998
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Orgmode] Org-protocol / Chrome on Linux,
Mattias Jämting <=