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

求助修复GNOME Shell无法管理所有打开窗口及会话窗口位置不恢复的问题

求助修复GNOME Shell无法管理所有打开窗口及会话窗口位置不恢复的问题

兄弟,我太懂你这种重启后窗口乱成一锅粥的崩溃了!之前升级到Ubuntu 20.04之后,GNOME的会话恢复功能就开始抽风,多开几个Firefox窗口重启后手动整理的那种烦躁感我完全体会过。刚好你已经开始用wmctrl排查了,我来分享几个亲测有效的解决办法:

一、先确认GNOME核心会话恢复配置

首先得确保GNOME自带的会话恢复功能是正常开启的,有时候升级系统后这个设置会被莫名重置:

  • 先安装dconf-editor(如果没装的话):sudo apt install dconf-editor
  • 打开dconf-editor后,导航到org > gnome > gnome-session,找到auto-save-session选项,把它设为on
  • 另外,再检查org > gnome > desktop > session里的session-name,确保是gnome而不是其他自定义名称,避免会话识别异常

二、用wmctrl写脚本实现精准窗口恢复

既然你已经在接触wmctrl了,那这个方法绝对能解决你的痛点——手动保存当前窗口布局,登录后自动恢复:

  1. 先把所有窗口摆到你想要的位置和对应工作区,然后运行这个命令保存布局:
wmctrl -lG > ~/.window_layout_config
  1. 接下来创建一个恢复脚本,比如~/.config/autostart/window_restorer.sh,内容如下:
#!/bin/bash
# 给自启动应用留足加载时间,根据你的应用数量调整秒数
sleep 12
# 读取保存的布局文件,逐个调整窗口
while read -r win_data; do
    # 拆分窗口信息:窗口ID、工作区、X坐标、Y坐标、宽度、高度
    win_id=$(echo "$win_data" | awk '{print $1}')
    target_workspace=$(echo "$win_data" | awk '{print $2}')
    pos_x=$(echo "$win_data" | awk '{print $3}')
    pos_y=$(echo "$win_data" | awk '{print $4}')
    win_width=$(echo "$win_data" | awk '{print $5}')
    win_height=$(echo "$win_data" | awk '{print $6}')
    
    # 移动窗口到目标工作区
    wmctrl -i -r "$win_id" -t "$target_workspace"
    # 调整窗口位置和大小
    wmctrl -i -r "$win_id" -e 0,"$pos_x","$pos_y","$win_width","$win_height"
done < ~/.window_layout_config
  1. 给脚本加上执行权限:
chmod +x ~/.config/autostart/window_restorer.sh
  1. 最后把这个脚本添加到自启动:打开gnome-session-properties,点击「添加」,名称填「窗口布局恢复脚本」,命令填/home/你的用户名/.config/autostart/window_restorer.sh(记得替换成你的实际用户名),注释随便写就行

三、单独修复Firefox的窗口恢复问题

Firefox有时候会自己接管会话恢复,和GNOME的功能冲突,你可以这么调整:

  • 打开Firefox,输入about:preferences进入设置页
  • 找到「常规」里的「启动时」,选择「恢复上次会话」
  • 再到「性能」设置里,取消勾选「使用推荐的性能设置」,然后关掉「使用硬件加速(如果可用)」——硬件加速有时候会和GNOME的窗口管理逻辑冲突
  • 重启Firefox后再测试,看看重启系统后Firefox的窗口能不能正常归位

四、排查第三方扩展冲突

很多第三方GNOME扩展(比如窗口管理类、dock类的)会和原生会话恢复功能冲突,你可以这么排查:

  • 打开「GNOME 扩展」应用,先把所有第三方扩展都禁用
  • 重启系统,看看窗口恢复是不是正常了
  • 如果正常了,再逐个启用扩展,每次重启后测试,找到那个导致冲突的扩展,要么更新它要么暂时禁用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 14:04:51