消失的窗口 - 现在在 wslg 中

消失的窗口 - 现在在 wslg 中

这是对旧问题的跟进 WSL2 X11 程序“消失”

如果我的 X 服务器在 Windows 中,有没有办法重新连接 X Window?

这些是 wslg 之前的版本,但现在我遇到了同样的问题

WSL version: 1.2.5.0
Kernel version: 5.15.90.1
WSLg version: 1.0.51
MSRDC version: 1.2.3770
Direct3D version: 1.608.2-61064218
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.22621.1848

(Ubuntu 22.04)。我在 wslg 窗口中从 emacs 内部运行 emacs 和 GAP,然后计算机进入睡眠状态,当我唤醒它时,窗口消失了,尽管所有进程都完好无损。

有人知道这个问题的解决办法吗?

答案1

我没有解决方案,但有一个解决方法。我的 Windows 11 中的 WSL2 版本:

PS> wsl --version
WSL version: 2.0.9.0
Kernel version: 5.15.133.1-1
WSLg version: 1.0.59
MSRDC version: 1.2.4677
Direct3D version: 1.611.1-81528511
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.22621.2861

我正在从 Ubuntu 22.04 LTS WSL 运行 emacs。当 emacs 窗口消失时,我启动第二个 emacs 实例 ( emacs&),第一个 emacs 实例丢失的窗口重新出现。然后我退出第二个 emacs 实例并继续使用第一个 emacs 实例。

答案2

对我有帮助的是 github 用户的这个脚本泰因,我发现它wslg 问题

#!/usr/bin/bash
sx=30
sy=30
for window in $(xdotool search -name .)
do
   xdotool windowmove $window $sx $sy
   xdotool windowunmap $window
   xdotool windowmap $window
   sx=$(($sx + 40))
   sy=$(($sy + 40))
done

答案3

对我来说,只需启动另一个 X 应用程序(任何应用程序)即可。我就是xeyes这么做的。然后所有窗口都会重新出现。

我也在(server-start)我的 .emacs 中,并且我从 wsl 文本控制台检查了显然消失的、不可见的 emacs 的状态,使用emacsclient -nw .(点属于命令)。

相关内容