chris <numbch...@gmail.com> writes:

> I set variable "org-file-apps" like this:
>
>
> (setq org-file-apps
>       '(;; default
>         (auto-mode . emacs)
>         ("\\.mm\\'" . default)
>         ;; ("\\.x?html?\\'" . default)
>         ("\.x?html\'" . "firefox %s")
>         ("\\.pdf\\'" . default)
>         ("\\.pdf::\\([[:digit:]]+\\)\\'" . "okular -p %1 %s")
>         ;; extras
>         ("\\.chm\\'" . "kchmviewer %s") ;; TODO open CHM file with external 
> program.
>         ))
>
> But when I open a CHM file, Emacs does not open it with "kchmviewer", just 
> open
> CHM in Emacs.
>
> What's wrong ?

Nothing is wrong. org-file-apps applies only to links that org-mode
knows about (e.g. when you follow a link to a CHM file from an org file
- that should work). In order to affect emacs as a whole, you need to
modify one of your mailcap files - read the manual page mailca[(5) for
the details. It's probably best to put it in your personal mailcap file,
~/.mailcap, but if your machine is used by other people who might also
want the association, you might want to put it into /etc/mailcap. I have
no idea how Windows does these things, so if you are running on Windows
you might need additional help.

mailcap maps content type (e.g. chemical/x-chemdraw) to processor:

chemical/x-chemdraw; kchmviewer %s

You might also need to provide an association between a filename suffix
and a content type. That is done in /etc/mime.types or ~/.mime.types:

chemical/x-chemdraw                     chm

My /etc/mime.types already contained this association.

This is the general mechanism and *all* programs that claim to deal
with MIME content use it, including emacs. org-file-apps should be
used only to impose *exceptions* to this rule (e.g. you might want to
treat some content types differently if they are found as targets of
links from org files).

-- 
Nick


Reply via email to