ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

WSL打开软件,右键菜单错位问题的解决

2026/8/25 21:05:05 拓冰建站 浏览量
WSL打开软件,右键菜单错位问题的解决 问题我在wsl虚拟机中AlmaLinux-8系统并安装了一套Synopsys的工具进行数字设计。但是用DVE打开波形软件添加右键添加波形图时右键窗口总是错位。原因wsl默认使用的是WSLg/XWayland进行显示。解决办法我的办法是让所有 X11 图形程序通过 VcXsrv 显示。具体步骤我的环境是Windows 11 WSL2 2.7.12 WSLg 1.0.73.2 AlmaLinux 8 networkingModeMirrored 双显示器总分辨率 5120×1440第一步windows下安装VcXsrv软件链接VcXsrv SourceForge 页面然后运行XLaunch配置如下1. 选择 Multiple windows 2. Display number 填 0 3. 选择 Start no client 4. 勾选 Clipboard 5. 勾选 Disable access control 6. Additional parameters 填-dpi 96第二部测试是否连接PS C:\Users\****** Get-Process vcxsrv -ErrorAction SilentlyContinue Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 355 27 59400 73020 0.86 14220 10 vcxsrvPS C:\Users\****** Get-NetTCPConnection -LocalPort 6000 -State Listen -ErrorAction SilentlyContinue LocalAddress LocalPort RemoteAddress RemotePort State AppliedSetting OwningProcess ------------ --------- ------------- ---------- ----- -------------- ------------- :: 6000 :: 0 Listen 14220 0.0.0.0 6000 0.0.0.0 0 Listen 14220PS C:\Users\***** Get-CimInstance Win32_Process | Where-Object Name -eq vcxsrv.exe | Select-Object ProcessId,CommandLine ProcessId CommandLine --------- ----------- 14220 vcxsrv :0 -multiwindow -clipboard -wgl -ac -dpi 96说明VcXsrv 已正常运行并监听6000端口。启动参数已经正确-ac访问控制已关闭-dpi 96固定 DPI端口6000正在监听缺少-listen tcp不影响因为监听结果已经证明 TCP 已启用。在WSl中测试[**********]$ timeout 3 bash -c exec 3/dev/tcp/127.0.0.1/6000 echo TCP connected || echo TCP failed TCP connectedTCP connected表示 WSL 可以访问 VcXsrv 的 6000 端口。然后执行env -u XAUTHORITY DISPLAY127.0.0.1:0.0 xrandr --current看到屏幕分辨率信息表示 VcXsrv 配置成功。第三步测试用 VcXsrv 打开软件界面在想要打开的软件前面添加内容并打开软件env -u XAUTHORITY DISPLAY127.0.0.1:0.0 WAYLAND_DISPLAY \ dve -vpd test_vtb_basic/waves.vpdenv 里面的内容是配置后面的命令时要打开的波形软件观察到右键菜单已经正常。同时也发现软件图标也正常了如下图之前就是Liunx的图标。第四步配置 .bashrc 永久使用 VcXsrv 打开所有软件界面在 .bashrc 文件中添加以下内容。export DISPLAY127.0.0.1:0.0 unset WAYLAND_DISPLAY unset XAUTHORITY如果之后想临时切换回WSLg使用如下配置export DISPLAY:0 export WAYLAND_DISPLAYwayland-0 unset XAUTHORITY使用以下命令让配置生效。source ~/.bashrc之后进行一下验证[*****]$ echo $DISPLAY 127.0.0.1:0.0 [*****]$ xrandr --current Screen 0: minimum 0 x 0, current 5120 x 1440, maximum 32767 x 32767 default connected primary 5120x144000 1354mm x 423mm 5120x1440 0.00* # 如果遇到问题可以使用如下命令尝试清除认证变量 $ env -u XAUTHORITY DISPLAY127.0.0.1:0.0 xrandr --current 再次尝试 $ DISPLAY127.0.0.1:0.0 xrandr --current当前输出表明DISPLAY127.0.0.1:0.0正在使用 VcXsrv不是 WSLg。default connected显示设备由 VcXsrv 提供。5120×1440两台显示器组成的完整虚拟桌面。1354mm × 423mm换算约为 96 DPI说明-dpi 96生效。刷新率显示0.00是虚拟 X Server 的正常现象。最后只要在开启wsl有界面的软件之前提前打开 VcXsrv 就可以也就是xlaunch软件。