xdg-open未打开默认浏览器

时间:2016-12-15 20:19:32

标签: default-browser

我有以下情况: 安装了firefox和chrome的Ubuntu 16.04机器,chrome是我的默认浏览器。

我在shell中检查这些动作:

cat /usr/share/applications/defaults.list
cat /etc/mailcap
cat /.config/mimeapps.list
cat /.local/share/applications/mimeinfo.cache

x-www-browser-> chrome is launch
xdg-mime query default text/html
response:
google-chrome.desktop

并没有任何一方出现firefox,总是镀铬。这可以。还要检查:

点击桌面文件file.html - > chrome正在发布

如果我跑的话,现在变得奇怪了:

xdg-open "http://www.example.com"

由于一些奇怪的原因,它总是打开firefox。我不知道为什么,有人可以帮助我吗?

3 个答案:

答案 0 :(得分:6)

要设置默认浏览器,请确保首选浏览器存在.desktop文件。我将为此示例设置Mozilla Iceweasel:

$ ls /usr/share/applications/iceweasel.desktop
iceweasel.desktop

确保您拥有该文件,运行:

$ xdg-settings set default-web-browser iceweasel.desktop
# Test that it works
$ xdg-open "http://example.com"

如果您没有.desktop文件:

我使用的程序surf没有.desktop文件。要将其设置为Web浏览器,请首先使用以下内容创建文件~/.local/share/applications/surf.desktop

[Desktop Entry]
Type=Application
Name=surf
Comment=Surf minimal web browser
Terminal=false
Exec=surf
Categories=Network;WebBrowser

虽然并非所有这些内容都是必需的,但它有助于对文件进行分类以供将来使用。

将普通浏览器设置为正常:

$ xdg-settings set default-web-browser surf.desktop

现在你好了!

答案 1 :(得分:1)

text/html 用于 html 文件,即如果您打开一个 html 文件,它将在 google chrome 中打开。要打开网址,您需要有 x-scheme-handler/https 和 x-scheme-handler/http 条目。

您可以使用 xdg-mime 进行设置。例如将 google chrome 设置为 xdg-open 的默认浏览器:

xdg-mime default google-chrome.desktop x-scheme-handler/https
xdg-mime default google-chrome.desktop x-scheme-handler/http

或者你可以在 ~/.config/mimeapps.list 中加入以下几行

x-scheme-handler/http=google-chrome.desktop
x-scheme-handler/https=google-chrome.desktop

上面的命令基本上将这些行插入到该文件中。

注意:您显然应该在 ~/.local/share/applications 或系统范围的替代位置 - /usr/share/applications 下拥有 google-chrome.desktop 文件。

答案 2 :(得分:-3)

解决,只需打开Chrome浏览器并设置为默认浏览器。这解决了这个问题。