【问题标题】:How do I set the default browser for xdg-open on Centos 7 if xdg-settings has no desktop environment如果 xdg-settings 没有桌面环境,如何在 Centos 7 上为 xdg-open 设置默认浏览器
【发布时间】:2019-12-31 04:31:39
【问题描述】:

有许多与我类似的问题(例如xdg-open not open default browserxdgutils - xdg-settings not setting default-web-browser in gentoo,但没有一个答案对我的情况有帮助。因此我问我的具体情况:


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

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

xdg-open 可用,它会在google-chrome 中打开链接——就像 VS Code 一样。不过我想把它改成firefox

我试过了:

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

  2. 使用xdg-settings,但是

    xdg-settings get default-web-browser 
    

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

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

    export BROWSER=firefox
    

    google-chrome 仍然由xdg-open 启动

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


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

【问题讨论】:

    标签: centos centos7 xdgutils default-browser


    【解决方案1】:

    可以在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)xdg-mime(1) 在本规范的File name and location 部分列出的位置中查找此文件:

    • $XDG_CONFIG_HOME/$desktop-mimeapps.list 用户覆盖,特定于桌面(针对高级用户)
    • $XDG_CONFIG_HOME/mimeapps.list 用户覆盖(用户配置 GUI 的推荐位置)
    • $XDG_CONFIG_DIRS/$desktop-mimeapps.list sysadmin 和 ISV 覆盖,特定于桌面
    • $XDG_CONFIG_DIRS/mimeapps.list sysadmin 和 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 管理。如果您想知道xdg-utils 在您的特定情况下在哪里寻找配置,请使用XDG_UTILS_DEBUG_LEVEL 环境变量运行它们,如下所示:

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

    【讨论】:

    • 谢谢!说得通。 XDG_UTILS_DEBUG_LEVEL 的提示很有价值:在我的情况下,~/.config/mimeapps.list 没有完成这项工作,但是通过调试变量,我发现系统正在寻找 ~/.local/share/applications/mimeapps.list,所以我在那里设置了默认条目。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 2023-03-17
    • 1970-01-01
    • 2014-08-24
    • 2013-09-24
    相关资源
    最近更新 更多