尽管向 xdg-open 传递了一个 URL,但它只会在新的 Chromium 窗口中打开一个新选项卡

尽管向 xdg-open 传递了一个 URL,但它只会在新的 Chromium 窗口中打开一个新选项卡

当我使用xdg-open在 Chromium 中打开链接时,它只会打开一个新的 Chromium 窗口,其中只有新标签页,没有其他任何内容。

例如,xdg-open 'https://askubuntu.com'只会打开一个新的 Chromium 窗口而不会打开 AskUbuntu。

看起来 URL 并没有传递给 Chromium,因为直接调用 Chromium工作并打开所需的页面:chromium-browser 'https://askubuntu.com' 作品

显然,Chromium 是默认浏览器。

问题可能出在哪里?我该如何解决?当某些程序xdg-open打开链接后,您无法转到所需的页面,甚至看不到已打开的内容时,这尤其令人烦恼。

答案1

问题确实是xdg-open没有将请求的 URL 传递给 Chromium,因此chromium-browser url-here它没有运行,而是执行了chromium-browser只打开一个新窗口的操作。

在网上搜索后,我发现xdg-open使用位于的一些“配置”文件/usr/share/applications

/usr/share/applications/chromium-browser.desktop似乎是正确的,因为它配置为正确地将 URL 传递给 Chromium:

$ grep Exec /usr/share/applications/chromium-browser.desktop
Exec=chromium-browser %U
...

那么问题出在哪里?原来是另一个位置xdg-open使用了 和 ,并且其优先级高于/usr/share/applications

$ grep Exec ~/.local/share/applications/chromium-browser.desktop
Exec=/usr/lib/chromium-browser/chromium-browser --use-system-title-bar --ppapi-flash-path=/usr/lib/pepflashplugin-installer/libpepflashplayer.so --ppapi-flash-version=14.0.0.125

我不知道为什么还有另一个 chromium-browser.desktop,但请注意,此 Exec 行不传递 URL;它缺少%U。所以我只是附加%U到此行。这立即解决了xdg-openChromium 的所有问题。

相关内容