在WSL2与VcXsrv环境下运行gedit的问题咨询
在WSL2与VcXsrv环境下运行gedit的问题咨询
嗨,我来帮你拆解这个问题~
首先,你遇到的核心原因是:Ubuntu 22.04里的gedit属于GTK3+应用,它现在默认优先尝试使用Wayland窗口协议,而不是VcXsrv提供的X11协议,所以才会出现“看起来像原生Linux窗口”且VcXsrv里看不到客户端的情况。而xeyes是纯X11应用,vlc则是默认仍采用X11后端,所以它们都能正常对接VcXsrv。
接下来给你两种解决方法,让gedit强制走X11协议连接VcXsrv:
临时生效方式:每次运行
gedit时,先指定环境变量,执行命令:GDK_BACKEND=x11 gedit这样就能直接让
gedit切换到X11模式,连接你的VcXsrv了。永久生效方式:如果你不想每次都手动加环境变量,可以把配置写入shell的初始化文件:
- 如果你用的是bash,编辑
~/.bashrc文件;如果是zsh,编辑~/.zshrc - 在文件末尾添加一行:
export GDK_BACKEND=x11 - 保存后,执行
source ~/.bashrc(bash用户)或source ~/.zshrc(zsh用户),或者重启终端,之后再直接运行gedit就会自动走X11协议连接VcXsrv了。
- 如果你用的是bash,编辑
另外补充一下:Ubuntu 22.04默认的桌面环境是GNOME,而GNOME现在主推Wayland,但WSL2里并没有完整的Wayland显示环境,所以gedit其实是在一个虚拟的Wayland环境里运行,自然无法被VcXsrv识别。强制指定X11后端就能完美解决这个冲突啦。
备注:内容来源于stack exchange,提问作者just-my-name
相关产品推荐
相关产品推荐

