Dim*_*ima 28 chromium default-browser xdg-open
我已经运行update-alternatives以及 GNOME首选应用程序选择的东西。并且都指向将 Chromium 浏览器作为默认浏览器。然而,当我运行时xdg-open http://askubuntu.com,Firefox 启动了!同样,Emacs和Bazaar ( bzr) 也在 Firefox 而不是 Chromium 中启动东西。
是否有任何其他设置会影响 xdg-open 功能?
有些东西肯定坏了:
我已经清除了 Firefox:
!!!!
小智 9
以上所有答案基本上都是正确的,这取决于您在做什么以及您使用的程序如何调用事物。对我来说,问题是我的终端模拟器 (Tilix) 仍然打开了错误的浏览器(Firefox 而不是 Chrome),并且xdg-open foobar.html还打开了错误的浏览器。
最终我发现还有xdg-mime:
xdg-mime query default x-scheme-handler/http
firefox.desktop
xdg-mime query default x-scheme-handler/https
firefox.desktop
Run Code Online (Sandbox Code Playgroud)
那是不正确的,所以我将它们更改为:
xdg-mime default google-chrome.desktop 'x-scheme-handler/http'
xdg-mime default google-chrome.desktop 'x-scheme-handler/https'
Run Code Online (Sandbox Code Playgroud)
然后还有“text/html”的绑定,我也改变了:
xdg-mime default google-chrome.desktop 'text/html'
Run Code Online (Sandbox Code Playgroud)
这与确保以下设置也正确相结合:
BROWSER环境变量sensible-browser( /usr/bin/sensible-browser,尝试启动此列表中的其他一些项目的包装脚本)gnome-www-browser( /usr/bin/gnome-www-browser, 符号链接到/etc/alternatives/gnome-www-browser)x-www-browser( /usr/bin/x-www-browser, 一个符号链接/etc/alternatives/x-www-browserwww-browser( /usr/bin/www-browser, 符号链接到/etc/alternatives/www-browser) update-alternatives --get-selections指向浏览器的所有“替代”条目(参见列表)。这最终为我桌面上的大多数情况打开了正确的浏览器。2018 年无疑是桌面 Linux 的一年。
Chromium 在其首选项中还有一个选项,可使其成为默认浏览器:

这应该有效,但如果没有,请继续阅读:
GConf数据库中有几个键决定了哪个浏览器被启动xdg-open:
/desktop/gnome/url-handlers/unknown/command/desktop/gnome/url-handlers/http/command/desktop/gnome/url-handlers/https/command/desktop/gnome/url-handlers/about/command确保它们都设置正确:
gconf-editor/usr/bin/chromium-browser %s。
小智 5
在我的情况下,我安装了 Chromium 并将其设为默认值。在此之前,Chrome 是默认浏览器。
我尝试了所有我能做的:设置 Chromium 默认浏览器,更改gconf设置以使用%U变量运行 Chromium (https://askubuntu.com/a/41085/94263),更改替代方案以使用 Chromium 作为默认x-www -browser ( https://askubuntu.com/a/24052/94263 ),但没有任何帮助,xdg-open打开了新的 Chromium 窗口,起始页 ang 无法打开给定的链接,sensible-browser打开了 Chrome。我试图清除 Chrome(Chromium 在update-alternatives 中被自动设置为默认和自动)并再次安装它,因为我需要从那里使用 Pepper flash,它变成了默认的x-www-browser再次选择,并再次使用sensible-browser命令打开。然后我用谷歌搜索了一些页面并引起了我对优先级的注意,还发现/etc/alternatives/ 中也有gnome-www-browser符号链接,而google-chrome是默认设置。Chrome 的优先级设置为200和 Chromium- 40。谷歌浏览器的优先级更高,因此更新替代实用程序将其作为默认网络浏览器自动安装为“更好的版本”。
我已经从x-www-browser和gnome-www-browser 中删除了 Chrome 和 Chromium :
sudo update-alternatives --remove x-www-browser /usr/bin/google-chrome
sudo update-alternatives --remove x-www-browser /usr/bin/chromium-browser
sudo update-alternatives --remove gnome-www-browser /usr/bin/google-chrome
sudo update-alternatives --remove gnome-www-browser /usr/bin/chromium-browser
Run Code Online (Sandbox Code Playgroud)
然后我安装了具有其他优先级的新替代品:
sudo update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/bin/google-chrome 40
sudo update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/bin/chromium-browser 200
sudo update-alternatives --install /usr/bin/gnome-www-browser gnome-www-browser /usr/bin/google-chrome 40
sudo update-alternatives --install /usr/bin/gnome-www-browser gnome-www-browser /usr/bin/chromium-browser 200
Run Code Online (Sandbox Code Playgroud)
我不知道所有计算机的默认优先级是“40”和“200”,否则您会有其他数字。最好先进去看看
sudo update-alternatives --display x-www-browser
sudo update-alternatives --display gnome-www-browser
Run Code Online (Sandbox Code Playgroud)
更新。我试图在完全不同的系统上做同样的事情,优先级与这里相同。
更新2。如果您只运行 google-chrome 一次,它会将其优先级改回200,但chrome -browser 将保持默认。
这对我有用。Chromium 已自动设置为默认值,并且sensible-browser正在启动 Chromium。但是xdg-open仍然打开新的空白窗口。