xdg-open尽管向其传递了URL,但仅在新的Chromium窗口中打开了新标签页


10

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

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

似乎URL并未传递给Chromium,因为直接调用Chromium 确实可以正常工作并打开所需的页面:chromium-browser 'https://askubuntu.com' works

显然,Chromium是默认浏览器。

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


尽管此问题是针对Chromium的,但如果是相同的问题,则可能适用于Firefox。
Lao Lam 2014年

Answers:


17

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

在Internet上搜索后,我发现它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有关的所有问题。


难以置信!我一直在这个砖墙上打了几个星期,几乎找不到这个答案。google-chrome包裹也会发生同样的事情。您是如何知道的?
阿达琳·西蒙尼安

1
我也有很长的时间遇到​​这个问题,当我碰巧阅读有关.desktop应用程序文件的问题时,我才找到原因-我记得Chromium的问题并决定检查文件,这就是解决问题的方法。
Lao Lam

1
最终,我不确定这个问题是由Pepperflash引起的,尽管我不确定。需要查看软件包文件列表或安装脚本以确保。
Lao Lam

谢谢,通过更新〜/ .local / share / applications / google-chrome.desktop,为google-chrome工作。–
Vlad

从/.local/share/applications移动了与chrome有关的文件,它立即开始工作!谢谢!
伊霍尔Mé
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.