当带有简单应用程序的 X 正在运行并且该应用程序尝试打开新窗口时会发生什么?

当带有简单应用程序的 X 正在运行并且该应用程序尝试打开新窗口时会发生什么?

使用以下命令运行firefox

#!/usr/bin/env bash
# Start a program into an X server on the current VT.
function run-gui
{
    let _DISPLAY=$XDG_VTNR-1
    xinit -geometry =1920x1080+0+0 "$@" -- :$_DISPLAY vt$XDG_VTNR
}

与以下.xinitrc

#!/usr/bin/env sh

setxkbmap -layout "us,bg(phonetic)" -option "grp:alt_shift_toggle"
exec $3

几乎一切都很好。问题是任何新的迷你窗口 - 比如

  • 鼠标右键单击上下文菜单
  • 顶部的“文件”、“编辑...”菜单
  • 基本上除了扩展的地址栏之外的任何东西

出现几毫秒然后消失。

在以上述方式启动的所有程序之间观察到相同的行为。

一个特点是有时事实并非如此:即使一分钟后,迷你窗口也不会消失。这种情况很少发生,只有在重新启动后才会出现,并且很快就会消失。

为什么会发生这种情况?我可以在不安装窗口管理器的情况下修复它吗?实际上什么正在发生?

更新:

使用 Wayland 协议的显示服务器称为合成器,因为它们还充当合成窗口管理器。 来源

看来废除 Xorg 也可以解决这个问题。然而 Xorg 还存在了几十年,所以我上面的“正在发生什么”的问题仍然很突出。

相关内容