jul*_*ien 27 linux firefox google-chrome xdg
今天早上我一直在努力尝试将应用程序与自定义协议相关联,即emacsclient 和 org-protocol。
我从 webbrowser bookmarklet 调用这个协议,我得到以下行为:
在 Chromium 中,
“启动应用程序”对话框出现,并调用 xdg-open org-protocol://... 最终触发一个新的 Chromium 框架。
在 firefox 中,
我尝试将 network.protocol-handler.app.org-protocol 设置为空字符串或我的 emacsclient 路径,无论如何我收到以下错误消息:
“Firefox 不知道如何打开此地址,因为协议(组织协议)不与任何程序相关联”,甚至没有显示任何外部应用程序选择对话框。
我没有使用任何桌面环境,所以我需要严格使用 xdg 来完成这项工作,但是,尽管阅读了共享的 MIME 信息规范等,我仍然无法理解工作配置。
use*_*686 22
XDG 方法:创建emacsclient.desktop处理x-scheme-handler/org-protocolMIME 类型的文件:
[Desktop Entry]
Name=Emacs Client
Exec=emacsclient %u
Icon=emacs-icon
Type=Application
Terminal=false
MimeType=x-scheme-handler/org-protocol;
Run Code Online (Sandbox Code Playgroud)
(请注意MimeType=上面的行,它用于org-protocol:URI。)
将文件放入~/.local/share/applications或 中/usr/local/share/applications。
您可能需要打开文件~/.local/share/applications/mimeapps.list并添加如下一行:
x-scheme-handler/org-protocol=emacsclient.desktop
Run Code Online (Sandbox Code Playgroud)
在该[Default Applications]部分下添加。
sso*_*low 12
@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。
小智 0
至少在 Fedora 13 和各种基于 Debian 的发行版中,如果xdg-open不在受支持的桌面环境中运行,则会在浏览器中打开所有没有file://方案的 URL。它尝试检测要使用哪个浏览器的方式取决于发行版。
由于xdg-open只是一个 shell 脚本,您可以轻松地根据您的需要进行调整。
| 归档时间: |
|
| 查看次数: |
22088 次 |
| 最近记录: |