如果 xdg-settings 没有桌面环境,如何在 Centos 7 上为 xdg-open 设置默认浏览器

How do I set the default browser for xdg-open on Centos 7 if xdg-settings has no desktop environment

有很多问题与我的相似(例如xdg-open not open default browser or xdgutils - xdg-settings not setting default-web-browser in gentoo,但none的答案对我的情况有帮助。因此我问我的具体情况:


在 Centos 7 上,我没有免费的桌面管理器 运行ning,我只是 运行 一些 X11 应用程序(如 VS Code)从命令行中将 DISPLAY 变量设置为 X 服务器在我连接的 (Windows) 机器上。

我在 Centos 机器上安装了两个浏览器,firefoxgoogle-chrome。我可以通过键入 firefox resp 来启动两个浏览器。 google-chrome 在 bash 终端。

xdg-open 可用,它在 google-chrome 中打开链接 - VS Code 也是如此。但是我想将其更改为 firefox.

我试过了:

  1. 在 Firefox 的 GUI 首选项中勾选 "Default browser"。

  2. 使用 xdg-settings,但

    xdg-settings get default-web-browser 
    

    returns "xdg-settings: unknown desktop environment"

  3. 正在设置 $BROWSER。在 bash 我发布了

    export BROWSER=firefox
    

    google-chrome 仍然由 xdg-open

  4. 启动

如何在此环境中将默认浏览器设置为 firefox?


注意:奇怪的是在另一台装有 Centos 6(和 "no desktop environment" 的机器上)export BROWSER 方法有效!

可以在 XDG MIME Applications specification 中描述的 mimeapps.list 配置文件中设置所需的行为。

TLDR: 为了将 firefox 配置为您的用户的默认浏览器,请创建包含以下行的 ~/.config/mimeapps.list

[Default Applications]
x-scheme-handler/http=firefox.desktop
x-scheme-handler/https=firefox.desktop
x-scheme-handler/ftp=firefox.desktop
x-scheme-handler/chrome=firefox.desktop
text/html=firefox.desktop
application/x-extension-htm=firefox.desktop
application/x-extension-html=firefox.desktop
application/x-extension-shtml=firefox.desktop
application/xhtml+xml=firefox.desktop
application/x-extension-xhtml=firefox.desktop
application/x-extension-xht=firefox.desktop

详情: xdg-utils like xdg-open(1) and xdg-mime(1) look for this file in the locations listed under the File name and location 本规范部分:

  • $XDG_CONFIG_HOME/$desktop-mimeapps.list 用户覆盖,特定于桌面(对于高级用户)
  • $XDG_CONFIG_HOME/mimeapps.list 用户覆盖(用户配置 GUI 的推荐位置)
  • $XDG_CONFIG_DIRS/$desktop-mimeapps.list 系统管理员和 ISV 覆盖,特定于桌面
  • $XDG_CONFIG_DIRS/mimeapps.list 系统管理员和 ISV 覆盖
  • $XDG_DATA_HOME/applications/$desktop-mimeapps.list 完整性,已弃用,特定于桌面
  • $XDG_DATA_HOME/applications/mimeapps.list 为了兼容性,已弃用
  • $XDG_DATA_DIRS/applications/$desktop-mimeapps.list 发行版提供的默认值,特定于桌面
  • $XDG_DATA_DIRS/applications/mimeapps.list 发行版提供的默认值

$XDG 变量的位置由 XDG Base Directory specification. If you want to figure out where xdg-utils 正在寻找您的特定情况下的配置,运行 它们与 XDG_UTILS_DEBUG_LEVEL 环境变量一样:

$ XDG_UTILS_DEBUG_LEVEL=10 xdg-open 'https://www.example.com'
...
Checking /home/USERNAME/.config/mimeapps.list
...