Ami*_*hum 5 chrome xdg-open xdg
我正在尝试配置我的 Linux 环境obsidian://
以使用 Obsidian 应用程序打开 URI(请参阅使用 Obsidian URI)。
这是我正在使用的流程。我在一台干净的 Ubuntu 机器上执行此操作,以确保它能够重现:
该文件与文件一起Obsidian.AppImage
存储。该文件具有执行权限。~/obsidian
icon.jpg
AppImage
这是我的~/.local/share/applications/obsidian.desktop
文件内容:
[Desktop Entry]
Name=Obsidian
Exec=/home/rachum/obsidian/Obsidian.AppImage %u
Terminal=false
Type=Application
Icon=/home/rachum/obsidian/icon.png
StartupWMClass=obsidian
X-AppImage-Version=0.8.15
Comment=Obsidian
Categories=Office;
MimeType=text/html;x-scheme-handler/obsidian;
Run Code Online (Sandbox Code Playgroud)
我已经跑了update-desktop-database ~/.local/share/applications/
xdg-open
按预期使用作品:
xdg-open "obsidian://new?vault=notes&name=note&content=content"
Run Code Online (Sandbox Code Playgroud)
此命令行将打开包含新注释和内容的 Obsidian 应用程序。
在 Firefox(预装)中,在 URL 栏中输入上述 URI 也会打开包含新注释和内容的 Obsidian 应用程序。
.deb
我通过从 Chrome 官方网站下载文件并运行来安装 Google Chromedpkg -i <.deb file>
在 Chrome 中输入上述 URI 只会将我重定向到 Google 搜索“obsidian://new?vault=notes&name=note&content=content”。
为什么 Chrome 不尊重 XDG 配置?
更新#1:添加更多详细信息来回答评论。
我的~/.local/share/applications/mimeapps.list
文件如下所示:
[Default Applications]
x-scheme-handler/obsidian=obsidian.desktop
Run Code Online (Sandbox Code Playgroud)
我的~/.local/share/applications/mimeinfo.cache
文件如下所示:
[MIME Cache]
text/html=obsidian.desktop;
x-scheme-handler/obsidian=obsidian.desktop;
Run Code Online (Sandbox Code Playgroud)
为什么 Chrome 不尊重 XDG 配置?
您的评估不正确,Chrome 确实使用了 xdg-open。下面的截图展示了 google-chrome 和 chromium 都会提示使用 xdg-open 打开“特殊链接”。
如果您之前接受了“始终打开此类型的文件”对话框,那么您将需要重置此设置。您要清除的选项是这样的:
下载后自动打开某些文件类型
要进入此选项:
没有选项可以仅重置某些文件类型。您会注意到该按钮随后消失。
适用于在 Chrome 浏览器上登录托管帐户的 Linux 用户。使用您首选的 JSON 文件编辑器:
转到您的 /etc/opt/chrome/policies/driven 文件夹。创建或更新 JSON 文件并根据需要输入 URL:在 URLBlocklist 中,添加要阻止的 URL。在 URLAllowlist 中,添加您希望用户访问的 URL。
您可以使用以下命令验证当前加载的策略:chrome://policy/
来源:
$ grep -r ~/.config/google-chrome/ -e protocol_handler -l
Run Code Online (Sandbox Code Playgroud)
如果您使用默认配置文件,则这是要编辑的文件:
如果您使用多个配置文件,则首选项文件将位于 google-chrome/Profile 2、google-chrome/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": {},
Run Code Online (Sandbox Code Playgroud)
在最新版本的 Chrome 上,您可以通过 Web-ui 进行控制。只要打开这个特殊的网址
你想选择这个:
Web 应用程序可以要求打开文件类型
和
站点可以要求处理协议
参考:
归档时间: |
|
查看次数: |
8988 次 |
最近记录: |