我如何设置“xdg-open”启动哪个应用程序?

我如何设置“xdg-open”启动哪个应用程序?

我已经运行update-alternatives了 GNOME首选应用选择的事情。所有都指向将 Chromium 浏览器作为默认浏览器。然而,当我运行 时xdg-open http://askubuntu.com,Firefox 启动了!同样,Emacs市场bzr)还可以在 Firefox 而不是 Chromium 中启动东西。

是否有任何其他设置会影响 xdg-open 功能?

肯定是有些东西坏了:

更新

我已经清除了 Firefox:

  • update-alternatives-使用 Chromium 浏览器
  • sensible-browser-打开 Chromium 浏览器
  • xdg-open & gnome-open - 使用 google-chrome 打开,它会告诉我“它不是默认浏览器”

!!!!

答案1

以上所有答案基本上都是正确的,具体取决于您正在做什么以及您使用的程序如何调用事物。对我来说,问题是我的终端仿真器 (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
  • 所有update-alternatives --get-selections指向浏览器的“替代”条目(请参阅列表)。
  • GConf 数据库(参见@Isaiah 的回答)

这最终可以在我的桌面上打开大多数情况下正确的浏览器。2018 年无疑是桌面 Linux 之年。

答案2

Chromium 在其偏好设置中还有一个选项可以将其设为默认浏览器:

替代文本

这应该可行,但如果不行,请继续阅读:

有几个键在会议确定由哪个浏览器启动的数据库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

替代文本

答案3

就我的情况而言,我安装了 Chromium 并将其设为默认浏览器。在此之前,Chrome 是默认浏览器。

我尝试了所有我能做的:设置 Chromium 默认浏览器,更改配置文件运行 Chromium 的设置%U多变的 (https://askubuntu.com/a/41085/94263),将替代方案更改为使用 Chromium 作为默认设置x-www-浏览器https://askubuntu.com/a/24052/94263),但没有任何帮助,xdg-开放打开了新的 Chromium 窗口,其中包含起始页,但无法打开给定的链接,明智的浏览器打开了 Chrome。我尝试清除 Chrome(Chromium 被自动设置为默认设置,并自动更新替代方案)并再次安装它,因为我需要 Pepper flash,它成为了默认x-www-浏览器再次选择,再次开放明智的浏览器命令。然后我谷歌了一些页面,关注优先级,还发现有gnome-www-浏览器符号链接/etc/替代方案/也和谷歌浏览器是默认设置。Chrome 已将优先级设置为200和铬 -40。Google Chrome 的优先级更高,因此 update-alternatives 实用程序会自动将其作为“更好版本”安装为默认网络浏览器。

我已从x-www-浏览器gnome-www-浏览器

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

更新。我尝试在完全不同的系统上做同样的事情,优先级与这里相同。

Upd2. 如果您只运行一次 google-chrome,它会将其优先级改回200但 chromium-browser 将保持默认状态。

这对我来说很管用。Chromium 被自动设置为默认设置,并且明智的浏览器正在推出 Chromium。但xdg-开放正在打开新的空白窗口。

答案4

对我来说,解决方案是运行这两个命令。然后您只需从列表中选择所需的浏览器即可。

sudo update-alternatives --config x-www-browser
sudo update-alternatives --config gnome-www-browser

资料来源:发射台Bugzilla

相关内容