记一次 Edge 收藏夹/历史面板在 Arch Linux 下一 hover 就消失的排查问题现象在 Arch Linux(GNOME Wayland)上使用 Microsoft Edge 时,遇到一个很别扭的毛病:点击右上角的收藏夹或历史记录按钮,面板能正常弹出,但只要鼠标一移到列表里的某个项目上(项目甚至会正常高亮变色),整个面板就瞬间自动关闭了,既没有打开新页面,也没有任何点击操作。几个关键的对照事实:Windows 上完全正常,只有这台 Linux 机器有问题。同机器上的 Firefox 完全正常,只有 Edge(以及其他 Chromium 系浏览器)会这样。鼠标硬件没问题,换设备、换触摸板都一样。这些对照信息其实已经在悄悄指向答案了,后面会揭晓。排查思路我按从最可能到最底层的顺序逐一排除。记录下来,方便有同样问题的人对号入座。第一步:确认环境echoXDG_SESSION_TYPE:$XDG_SESSION_TYPE# waylandechoXDG_CURRENT_DESKTOP:$XDG_CURRENT_DESKTOP# GNOME环境是GNOME Wayland。这是最重要的线索:Windows 没有 Wayland/X11 这层显示服务器差异,而 Firefox 与 Chromium 在 Wayland 下的输入/渲染实现完全不同。问题几乎可以肯定出在Chromium 系浏览器与 Wayland 的交互上。第二步:排除输入法、扩展、多指针设备在锁定真凶前,我先排除了几个常见嫌疑:输入法(fcitx5):环境变量确实是乱的(QT_IM_MODULEibus但实际跑的是 fcitx5,GTK_IM_MODULE为空)。修正后问题依旧,排除。GNOME 扩展:尤其是 Tiling Shell 这类平铺窗口管理器,常干扰弹出窗口。禁用后问题依旧,排除。多指针 / 幽灵输入设备:笔记本触摸板有时会额外暴露一个 “Mouse” 接口,发出幽灵指针事件。用evdev抓取(grab)阻断该设备测试,问题依旧,排除。一圈下来,所有外围因素都被洗清了。第三步:定位到 Wayland popup 销毁 bug搜索症状关键词popup closes on hover wayland chromium后,一个 GTK issue 精准命中:Popup wayland surfaces are destroyed on surface enter (GTK #4198)描述与现象完全吻合:鼠标指针进入弹出层(popup surface)的瞬间,Wayland 合成器把这个弹出表面销毁了,面板自然就消失。这是 Chromium/GTK 的 Wayland popup 实现与 GNOME 合成器之间的交互 bug,和显卡、鼠标、配置都无关。Firefox 为什么没事?因为它的 popup 走的是不同的实现路径,不触发这个销毁逻辑。解决方案既然是Wayland模式下的 popup bug,那就让 Edge 改用X11(XWayland)模式运行。X11 下的弹出菜单使用 X11 grab 机制,完全绕开这个 Wayland 表面销毁问题。操作步骤Edge 的启动脚本/usr/bin/microsoft-edge-stable会自动读取一个 flags 配置文件,把里面的参数传给浏览器。我们只需创建这个文件并写入强制 X11 的参数。创建文件~/.config/microsoft-edge-stable-flags.conf,内容为:--ozone-platformx11就这一行。然后完全退出 Edge 再重新打开,收藏夹/历史面板 hover 就不会再消失了。几个容易踩的坑文件名后缀必须对应版本。stable 版是microsoft-edge-stable-flags.conf;如果你用 beta/dev 版,对应是microsoft-edge-beta-flags.conf/microsoft-edge-dev-flags.conf。启动脚本按这个名字读取。不要用--ozone-platform-hintauto。这个自动参数在 GNOME 下会解析成wayland,等于没修。必须用显式的--ozone-platformx11。对其他 Chromium 系浏览器同样适用。Chrome、Brave、Vivaldi 等遇到同款问题,思路一致,只是 flags 文件名换成各自的(如chrome-flags.conf)。验证是否生效重启 Edge 后,可以检查主进程参数里是否带上了 x11:pgrep-afmsedge|grep-oEozone-platform[a-z0-9]|sort-u看到ozone-platformx11就说明配置已加载。(子进程里可能混有 wayland 值,属正常现象,以浏览器 UI 的实际表现为准。)代价与取舍强制 X11 模式的唯一代价是失去原生 Wayland 的一些特性,主要是分数缩放(fractional scaling)会不如原生 Wayland 精细。但如果你的显示缩放是 100%(1.0),几乎感知不到差别。等哪天上游修复了这个 bug、想切回 Wayland,把这个文件删掉,或把内容改回--ozone-platform-hintauto即可。小结现象:GNOME Wayland 下 Edge 收藏夹/历史面板一 hover 就消失,Firefox 和 Windows 正常。根因:Chromium 系浏览器在 Wayland 下的 popup 表面销毁 bug(GTK #4198)。解决:在~/.config/microsoft-edge-stable-flags.conf写入--ozone-platformx11,强制走 X11/XWayland,绕开该 bug。排查这类问题,最有用的往往不是一上来就猜,而是先抓住那几个对照事实(哪些环境正常、哪些不正常),一步步把嫌疑对象排除掉,最后自然收敛到真正的根因。