当前位置: 首页>>技术教程>>正文


chromium – 如何设置’xdg-open’启动哪个应用程序?

, ,

问题描述

我已经运行了 update-alternatives 以及 GNOME 首选应用程序选择。所有这些都表明 Chromium 浏览器是默认浏览器。然而,当我运行 xdg-open http://askubuntu.com 时,Firefox 启动了!同样,EmacsBazaar (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 仍然打开新的空白窗口。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/14381.html,未经允许,请勿转载。