Я вызываю этот протокол из букмарклета веб-браузера и получаю следующее поведение:
В chromium появляется диалоговое окно «Launch Application» и вызывает xdg-open org-protocol: // ..., который завершает запуск нового кадра хрома.
В Firefox я попытался установить для network.protocol-handler.app.org-protocol пустую строку или путь к emacsclient, в любом случае я получаю следующее сообщение об ошибке: «Firefox не знает, как открыть этот адрес, потому что протокол (org-protocol) не связан ни с какой программой ", даже не показывая никакого диалога выбора внешнего приложения.
Я не использую какую-либо рабочую среду, поэтому мне нужно, чтобы это работало строго с xdg, однако, несмотря на чтение общей информации MIME и т. Д., Я все еще не могу понять рабочую конфигурацию.
http://askubuntu.com/questions/62585/how-do-i-set-a-new-xdg-open-setting
Ciro Santilli 新疆改造中心 六四事件 法轮功 8 лет назад
0
3 ответа на вопрос
14
grawity
Метод XDG: создайте emacsclient.desktopфайл, который обрабатывает x-scheme-handler/org-protocolMIME-тип:
(Обратите внимание на MimeType=строку выше, которая предназначена для org-protocol:URI.)
Поместите файл в ~/.local/share/applicationsили /usr/local/share/applications.
Возможно, вам придется открыть файл ~/.local/share/applications/mimeapps.listи добавить строку вроде этой:
x-scheme-handler/org-protocol=emacsclient.desktop
Добавьте это в [Default Applications]разделе.
это все еще открывает хромовое окно для меня; что-нибудь еще? (я использую Fluxbox без рабочего стола env похож на ориг. автора)
assem 10 лет назад
0
Вы также можете выполнить последний шаг с помощью `xdg-mime default emacsclient.desktop x-circuit-handler / org-protocol`, что, вероятно, является более официальным способом сделать это.
Adam Spiers 8 лет назад
6
Есть ли другие полезные переменные, кроме `% u`? Например, переменная, которая выражает только часть домена или пути URI?
Jonathan Neufeld 5 лет назад
0
11
ssokolow
@ Grawity почти правильно, но он упустил из виду две детали:
После установки .desktopфайла вам может потребоваться запустить его вручную sudo update-desktop-database. (Это может быть сделано для вас, если вы установили .desktopфайл с помощью xdg-desktop-menu install emacsclient.desktop)
Это было то, что требовалось, чтобы мой Firefox отображал «Что должно обрабатывать этот протокол?» диалог, а не просто отображение страницы с ошибкой.
В то время, когда задавался этот вопрос, была ошибка, из-за xdg-openкоторой он слепо передавал URL-адреса $BROWSERна «общие» (не KDE, не GNOME, не Xfce и т. Д.) Рабочие столы, и это приводило к точному поведению @ Жюльен переживал.
Это должно быть исправлено в современных версиях xdg-open, но если по какой-то причине ваш рабочий стол не использует современную версию, вот версия xdg-open, в которую я загляну, /usr/local/binчтобы решить проблему.
обновление xdg-open у меня сработало, спасибо!
George Marques 8 лет назад
1
0
Florian Diesch
По крайней мере, в Fedora 13 и различных дистрибутивах на основе Debian xdg-open открывает все URL, которые не имеют схемы file: // в браузере, если он не работает в поддерживаемой среде рабочего стола. То, как он пытается определить, какой браузер использовать, зависит от дистрибутива.
Поскольку xdg-open - это всего лишь сценарий оболочки, вы можете легко адаптировать его к вашим потребностям.
Действительно, но именно конфигурация, которая необходима между xdg-open и xdg-mime, очень непрозрачна для меня, несмотря на чтение документов ...
julien 13 лет назад
0
Если открыть файл: // URI Ubuntu вообще не вызывает xdg-mime, но использует run-mailcap, если не работает под поддерживаемым DE, Fedora 13 сначала пытается найти приложение по умолчанию, используя xdg-mime, и если это не так работа возвращается к мимеопен. xdg-mime использует базу данных общей информации MIME http://freedesktop.org/wiki/Software/shared-mime-info
Florian Diesch 13 лет назад
0