Huh. I am not really able to figure this out. I imagine that part of the problem may be that org tries to use mailcap as a method, and I don't have any mailcap files. So I attempted this, which does not work:
'((system . "/usr/bin/xdg-open %s")
(auto-mode . emacs)
("\\.odt\\'" . system)
("\\.mm\\'" . default)
("\\.x?html?\\'" . default)
("\\.pdf\\'" . default) )
*Messages* reports that xdg-open has been run, but the file doesn't actually run. seting the odt entry to "/usr/bin/libreoffice %s" doesn't seem to have any effect at all -- the file just opens in emacs. The only thing that works for now is this bizarre workaround:
'((system . "/usr/bin/libreoffice %s")
(auto-mode . emacs)
("odt" . system)
("\\.odt\\'" . "system")
("\\.mm\\'" . default)
("\\.x?html?\\'" . default)
("\\.pdf\\'" . default))
I don't undertand why this would work while the others don't. Of course, this is a pretty lousy workaround since now everything opens in libreoffice by default!