问题描述
我已经运行了 update-alternatives
以及 GNOME 首选应用程序选择。所有这些都表明 Chromium 浏览器是默认浏览器。然而,当我运行 xdg-open http://askubuntu.com
时,Firefox 启动了!同样,Emacs 和 Bazaar (bzr
) 也在 Firefox 而不是 Chromium 中启动内容。
是否有任何其他设置会影响 xdg-open 功能?
肯定有什么东西坏了:
Update
我已经清除了 Firefox:
-
update-alternatives – 使用 Chromium 浏览器
-
sensible-browser – 打开 Chromium 浏览器
-
xdg-打开& gnome-open – 使用 google-chrome 打开,它善意地告诉我“这不是默认浏览器”
!!!
最佳答案
上述所有答案基本上都是正确的,具体取决于您在做什么以及您使用的程序如何调用事物。对我来说,问题是我的终端模拟器(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
这是不正确的,所以我将其更改为:
xdg-mime default google-chrome.desktop 'x-scheme-handler/http'
xdg-mime default google-chrome.desktop 'x-scheme-handler/https'
然后还有 ‘text/html’ 的绑定,我也对其进行了更改:
xdg-mime default google-chrome.desktop 'text/html'
这与确保以下设置正确相结合:
-
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-browser
的符号链接 -
www-browser
(/usr/bin/www-browser
,到/etc/alternatives/www-browser
的符号链接) -
指向浏览器的所有 “alternative” 条目(有关列表,请参阅
update-alternatives --get-selections
)。 -
GConf 数据库(参见@Isaiah 的回答)
这最终会在我的桌面上打开适合大多数情况的正确浏览器。 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
确保它们都设置正确:
-
点击
Alt
+F2
-
输入
gconf-editor
-
导航到上述键,它们应设置为
/usr/bin/chromium-browser %s
。
第三种答案
在我的情况下,我安装了 Chromium 并将其设为默认值。在此之前,Chrome 是默认浏览器。
我尝试了我能做的一切:设置 Chromium 默认浏览器,更改 gconf 设置以使用 %U 变量( https://askubuntu.com/a/41085/94263 )运行 Chromium,更改替代方案以使用 Chromium 作为默认 x-www-browser ( https://askubuntu.com/a/24052/94263 ),但没有任何帮助, xdg-open 打开新的 Chromium 窗口start-page ang 无法打开给定链接,sensible-browser 打开了 Chrome。\n我尝试清除 Chrome(Chromium 在 update-alternatives 中自动设置为默认值和自动)并再次安装,因为我需要从那里使用 Pepper flash,它成为默认的 x-www-browser 替代品再次,再次使用 sensible-browser 命令打开。\n然后我用 google 搜索了一些页面并提请注意优先级,还发现 /etc/alternatives/中也有 gnome-www-browser 符号链接,并且 google-chrome 是默认的。 Chrome 的优先级设置为 200,Chromium 设置为 40。Google Chrome 的优先级更高,因此 update-alternatives 实用程序会自动将其安装为默认的 web-browser 作为 “better version”。
我已从 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
然后我安装了具有其他优先级的新替代方案:
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
我不知道 ’40’ 和 ‘200’ 是否是所有计算机的默认优先级,否则您将得到其他数字。最好先输入一下
sudo update-alternatives --display x-www-browser
sudo update-alternatives --display gnome-www-browser
更新。我尝试在完全不同的系统上做同样的事情,并且优先级与这里相同。
更新2。如果您仅运行 google-chrome 一次,它会将其优先级更改回 200,但 chromium-browser 将保留为默认值。
这对我有用。 Chromium 已自动设置为默认值,并且 sensible-browser 正在启动 Chromium。但 xdg-open 仍然打开新的空白窗口。