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

hal*_*leo 4 centos xdgutils default-browser centos7

有很多与我类似的问题(例如xdg-open 未打开默认浏览器xdgutils - xdg-settings 未在 gentoo 中设置 default-web-browser,但没有一个答案对我的情况有帮助。因此我询问我的特殊情况:


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

在 Centos 机器上我安装了两个浏览器,firefox并且google-chrome. 我只需输入firefoxresp 即可启动这两个浏览器。google-chrome在 bash 终端中。

xdg-open可用并打开链接google-chrome- 与 VS Code 一样。不过我想将其更改为firefox.

我试过:

  1. 在 Firefox 的 GUI 首选项中勾选“默认浏览器”。

  2. 使用xdg-settings, 但是

    xdg-settings get default-web-browser 
    
    Run Code Online (Sandbox Code Playgroud)

    返回“xdg-settings:未知的桌面环境”

  3. 设置 $BROWSER。在 bash 中我发出了

    export BROWSER=firefox
    
    Run Code Online (Sandbox Code Playgroud)

    但仍然google-chrome是由xdg-open

在这种环境下如何将默认浏览器设置为firefox?


注意:奇怪的是,在另一台装有 Centos 6的机器上(并且“没有桌面环境”),该export BROWSER方法有效!

Max*_*ski 5

可以在XDG MIME 应用程序规范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
Run Code Online (Sandbox Code Playgroud)

详细信息: xdg-utils喜欢xdg-open(1)并在本规范的文件名和位置xdg-mime(1)部分列出的位置中查找该文件:

  • $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规范控制。如果您想弄清楚在特定情况下在哪里寻找配置,请使用环境变量运行它们,如下所示:xdg-utilsXDG_UTILS_DEBUG_LEVEL

$ XDG_UTILS_DEBUG_LEVEL=10 xdg-open 'https://www.example.com'
...
Checking /home/USERNAME/.config/mimeapps.list
...
Run Code Online (Sandbox Code Playgroud)