问题描述
所以我已经解决了这个问题,但是实在令人沮丧,我想确保将来有关于此人的帖子。
此问题来自Chrome操作系统的浏览器,因为它不支持在Linux中打开应用程序的链接,例如vscode://
。在linux系统上,例如用于在Chrome操作系统上安装linux应用程序的ubuntu容器,打开链接由xdg-open
处理,启动浏览器/相关程序。
但是在Chrome操作系统上,不会发生这种情况。因为它不是Linux,并且不依赖linux文件系统,所以用于注册备用URL协议处理程序的常规系统不起作用。这意味着vscode://
和其他此类链接不起作用。
解决方法
解决方案
这不是永久解决方案,而是更多解决方法,但可以:
xdg-open <url>
用法
对于如何在链接中使用xdg-open
,甚至如何获得链接,可能尚不清楚。使用Microsoft登录VSCode实时共享时,我发现了此问题。您要做的很简单:
- 检查页面
- 转到
Network
或等效帐户 - 点击
Continue
- 右键单击已发送的新请求
- 复制地址
- 打开终端
- 写
xdg open
- 粘贴您的链接,并确保在其周围加上
""
引号,因为它们通常包含&
字符,在bash中很重要。 - 享受
说明
这个问题没有得到很好的记录,因为很少有人尝试在Chrome操作系统上运行VSCode。正如我所说,问题的根源在于浏览器未链接到其他任何东西。
协议处理程序的核心位于此目录中:
~
❯ ls ~/.local/share/applications/
mimeinfo.cache vsls-launcher.desktop
vsls-launcher.desktop
包含xdg-open
使用vscode://
链接启动vscode所必需的数据。
我的第一个提示来自这个reddit线程,特别是u/kgjv
的评论:https://www.reddit.com/r/Crostini/comments/chizyk/crostini_how_to_make_linux_apps_open_links_in/
它说明了xdg-open
将如何从linux启动chrome,所以我做了更多的挖掘工作,发现~/.local/share/applications/
包含了配置。
任何支持此功能的应用都将拥有自己的.desktop
,因此您只需复制链接并在打开xdg的情况下启动
我在Lenovo Duet上使用simplenote尝试了该方法,但是它没有用,只是一直说没有URL处理程序。可能是由于它仅可作为arm64体系结构的应用程序映像使用。
无论如何,我通过在Linux上安装另一个浏览器来解决它,例如:
sudo apt install firefox-esr
通过这种方法安装的浏览器将成为从linux打开的链接的默认浏览器,并且因为它也是从同一分区运行的,所以也很容易选择url-schemes。
注意:,这只是一种解决方法,因为安装其他浏览器有点违背了整个chome-os理想,但是在处理Linux应用程序时总是很方便。