You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04下为不同工作区配置不同默认浏览器的方案咨询

Ubuntu 22.04下为不同工作区配置不同默认浏览器的方案咨询

嗨,刚好我之前折腾过类似的需求,针对你在Ubuntu 22.04上想给工作区分别指定Chrome和Firefox作为默认浏览器的问题,这里有几个实用的方案,帮你搞定:

一、先搞定「识别当前工作区」的问题

Ubuntu 22.04用的是GNOME桌面,我们可以用gdbus命令直接从GNOME Shell获取当前激活的工作区索引(注意索引是从0开始计数的,第一个工作区是0,第二个是1),命令如下:

gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "global.workspace_manager.get_active_workspace().index"

执行后会返回类似(true, "0")的结果,其中引号里的数字就是当前工作区的索引,我们可以用cut命令把它提取出来,方便后续脚本使用。

二、写一个「浏览器分流脚本」

我们可以写一个中间脚本,让它根据当前工作区自动启动对应的浏览器,步骤如下:

  1. 创建一个脚本文件,比如放在你的用户目录下:touch ~/browser-launcher.sh
  2. 编辑脚本内容,把下面的代码复制进去(记得把你的用户名替换成实际的用户名):
#!/bin/bash

# 提取当前工作区索引
WORKSPACE=$(gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "global.workspace_manager.get_active_workspace().index" | cut -d '"' -f 2)

# 根据工作区选择启动的浏览器
if [ "$WORKSPACE" -eq 0 ]; then
    # 假设工作区0是你的工作区,启动Firefox
    exec firefox "$@"
elif [ "$WORKSPACE" -eq 1 ]; then
    # 工作区1是私人区,启动Chrome
    exec google-chrome "$@"
else
    # 其他工作区默认启动Chrome(你可以改成Firefox)
    exec google-chrome "$@"
fi
  1. 给脚本添加可执行权限:
chmod +x ~/browser-launcher.sh

三、把脚本设置为系统默认浏览器

光有脚本还不够,我们需要把它注册成系统认可的浏览器应用:

  1. 创建一个桌面配置文件:touch ~/.local/share/applications/browser-launcher.desktop
  2. 编辑这个文件,复制以下内容(同样替换你的用户名):
[Desktop Entry]
Name=Workspace Browser Launcher
Exec=/home/你的用户名/browser-launcher.sh %u
Type=Application
Terminal=false
MimeType=x-scheme-handler/http;x-scheme-handler/https;text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
  1. 更新桌面应用数据库,让系统识别这个新应用:
update-desktop-database ~/.local/share/applications/
  1. 设置为默认浏览器:
    • 打开系统「设置」→「默认应用」→「Web」
    • 在列表里找到「Workspace Browser Launcher」,选中它就可以了

四、有没有其他替代方案?

  • GNOME扩展:理论上有扩展可以实现根据工作区切换默认应用,但我试过几个要么维护不及时,要么兼容性差,不如脚本稳定可靠。
  • 窗口规则工具(如devilspie2):可以配置根据工作区自动打开特定浏览器,但它是针对窗口的,不是修改默认浏览器,适合另一种场景——比如你手动打开浏览器时自动移到对应工作区,但没法处理点击链接自动打开的情况。

你提到的那个线程思路是完全正确的,核心就是识别当前工作区然后做分流,上面的脚本就是这个思路的具体实现,在Ubuntu 22.04上亲测可用。

备注:内容来源于stack exchange,提问作者Nemo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 09:34:11