我正在尝试将我的Linux环境配置为使用Obsidian应用程序打开obsidian:// URI(参见使用黑点URI)。
这就是我正在使用的流程。我是在一台干净的Ubuntu机器上这样做的,以确保它能够复制:
Obsidian.AppImage文件与一个icon.jpg文件一起存储在~/obsidian中。AppImage文件具有执行权限。~/.local/share/applications/obsidian.desktop文件的内容: Name=Obsidian Exec=/home/rachum/obsidian/Obsidian.AppImage %u Terminal=false Type=Application Icon=/home/rachum/obsidian/icon.png StartupWMClass=obsidian X-AppImage=0.8.15 Comment=Obsidian Categories=Office;update-desktop-database ~/.local/share/applications/xdg-open,这个命令行打开带有新注释和内容的Obsidian应用程序。.deb文件并运行dpkg -i <.deb file>来安装Google为什么Chrome不尊重XDG配置?
更新1:添加更多细节来回答评论。
我的~/.local/share/applications/mimeapps.list文件如下所示:
[Default Applications]
x-scheme-handler/obsidian=obsidian.desktop我的~/.local/share/applications/mimeinfo.cache文件如下所示:
[MIME Cache]
text/html=obsidian.desktop;
x-scheme-handler/obsidian=obsidian.desktop;发布于 2021-09-22 19:36:02
为什么Chrome不尊重XDG配置?
您的评估是不正确的,Chrome确实使用xdg。下面的屏幕截图显示,谷歌铬和铬都会提示打开xdg的“特殊链接”。

如果您以前接受过“始终打开此类型的文件”对话框,则需要重置此设置。您要清除的选项是:
下载后自动打开某些文件类型
为了获得这个选项:
没有选项可以只重置某些文件类型。您会注意到按钮随后消失了。
高级设置:

清除“始终运行设置”:

适用于在Chrome浏览器上登录到托管帐户的Linux用户。使用您喜欢的JSON文件编辑器:转到/etc/opt/chrome/policies/托管文件夹。创建或更新JSON文件并根据需要输入URL:在URLBlocklist中,添加要阻止的URL。在URLAllowlist中,添加希望用户访问的URL。
您可以使用: chrome://policy/验证当前加载的策略
来源:
$ grep -r ~/.config/google-chrome/ -e protocol_handler -l如果使用默认配置文件,则这是要编辑的文件:
如果您使用多个配置文件,首选项文件将在google/Profile 2,google/Profile 3中。
根据需要清除特定协议的设置,在本例中为obsidian://。
$ jq < /home/jaroslav/.config/google-chrome/Default/Preferences \
| grep protocol_handler -C 2
"custom_handlers": {
"enabled": true,
"ignored_protocol_handlers": [
{
"last_modified": "13276367110202441",
--
}
],
"registered_protocol_handlers": []
},
"custom_links": {
--
},
"ppapi_broker": {},
"protocol_handler": {},
"safe_browsing_url_check_data": {},
"sensors": {},在较新版本的chrome上,您可以通过web来控制它。只需打开这个特殊的URL
您要选择以下内容:
Web应用程序可以要求打开文件类型
和
站点可以要求处理协议。
参考资料:
https://unix.stackexchange.com/questions/669681
复制相似问题