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

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:

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

!!!!

小智 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-browser
  • www-browser( /usr/bin/www-browser, 符号链接到/etc/alternatives/www-browser)
  • update-alternatives --get-selections指向浏览器的所有“替代”条目(参见列表)。
  • GConf 数据库(见@Isaiah 的回答)

这最终为我桌面上的大多数情况打开了正确的浏览器。2018 年无疑是桌面 Linux 的一年。


Isa*_*iah 6

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。

替代文字


小智 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仍然打开新的空白窗口。


kar*_*k87 1

sensible-browser是从终端启动默认 Web 浏览器的命令。