You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在KUbuntu 18.04系统中为所有用户默认自动修复Firefox窗口无法调整大小的问题

如何在KUbuntu 18.04系统中为所有用户默认自动修复Firefox窗口无法调整大小的问题

我完全理解你们实验室100多台Ubuntu 18.04机器遇到这个Firefox窗口无法调整大小的困扰——明明bug标记已关闭却还出现,又暂时没法升级系统,确实头疼。先理清楚问题背景,再给你两种靠谱的批量解决思路:

问题背景

Firefox存在一个窗口无法调整大小的已知问题,虽官方标记已修复,但在KUbuntu 18.04搭配Firefox 111.0+build2-0ubuntu0.18.04.1版本时仍会出现,大概率是bug回归了。手动修复的步骤很简单:

  • 打开Firefox
  • 点击菜单 → 更多工具 → 自定义工具栏...
  • 勾选「标题栏」选项
  • 之后就能用鼠标拖动窗口边框调整大小了

批量自动修复方案

针对实验室的场景,有两种高效的方式可以让所有用户默认生效:

方案一:通过系统用户模板(skel)配置新用户+重置现有用户

这个思路和你想到的一致,就是把调好的Firefox配置作为系统默认模板,新用户登录自动继承,现有用户重置配置后也会用上:

  1. 创建模板配置

    • 在一台测试机上用临时普通用户登录,按手动步骤打开Firefox并勾选「标题栏」,然后关闭Firefox。
    • 找到该用户的Firefox配置文件夹:~/.mozilla/firefox/[随机字符串].default/,复制里面的prefs.js文件(核心配置是user_pref("browser.tabs.drawInTitlebar", false);,这条就是开启独立标题栏的设置)。
  2. 配置系统用户模板

    • 创建skel下的Firefox目录结构:
      sudo mkdir -p /etc/skel/.mozilla/firefox/default/
      
    • 将刚才的prefs.js复制到这个目录,或者直接创建新的配置文件:
      sudo nano /etc/skel/.mozilla/firefox/default/prefs.js
      
      写入内容:
      user_pref("browser.tabs.drawInTitlebar", false);
      
    • 再创建profiles.ini指定默认配置:
      sudo nano /etc/skel/.mozilla/firefox/profiles.ini
      
      写入:
      [General]
      StartWithLastProfile=1
      
      [Profile0]
      Name=default
      IsRelative=1
      Path=default
      Default=1
      
  3. 重置现有用户配置
    因为你们允许重置实验室用户,直接删除现有用户的Firefox配置文件夹,下次登录就会自动套用模板:

    # 批量处理所有普通用户(UID≥1000)
    for user in $(ls /home/); do
        if id -u "$user" -ge 1000; then
            sudo rm -rf /home/$user/.mozilla/
        fi
    done
    

方案二:系统级强制配置(无需重置用户)

如果不想动现有用户的文件,可以用Firefox的系统级配置功能,强制所有用户生效,甚至能锁定设置不让用户修改:

  1. 创建本地配置引导文件

    sudo nano /usr/lib/firefox/browser/defaults/preferences/local-settings.js
    

    写入:

    pref("general.config.obscure_value", 0);
    pref("general.config.filename", "mozilla.cfg");
    
  2. 创建系统级配置文件

    sudo nano /usr/lib/firefox/mozilla.cfg
    

    写入:

    //
    # 如果你想强制用户用这个设置,不让修改,用lockPref
    lockPref("browser.tabs.drawInTitlebar", false);
    # 如果你允许用户后续手动更改,把上面的lockPref改成pref即可
    # pref("browser.tabs.drawInTitlebar", false);
    
  3. 重启Firefox生效
    所有用户下次打开Firefox时,标题栏就会自动开启,窗口可以正常调整大小了。

方案对比

  • 方案一适合需要保留用户自主修改权限的场景,新用户自动继承,现有用户需重置配置;
  • 方案二更适合实验室统一管理,无需动用户文件,还能锁定设置防止用户误改。

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

火山引擎 最新活动