我有这个 vbs 脚本,我一直用它来gnome-terminal
从我的 Windows 10 桌面运行。它执行以下命令,但strArgs
不显示正在执行命令的终端窗口。
Set oShell = CreateObject ("Wscript.Shell")
Dim strArgs
strArgs = "wsl 'DISPLAY=:0 gnome-terminal"
oShell.Run strArgs, 0, false
但是,只有我DISPLAY=:0 gnome-terminal
先在 vanilla wsl 终端中执行该脚本,该脚本才会起作用。我不确定在我的进程中启动了什么才能使该脚本起作用,但我真的不想每次重启电脑时都这样做。
答案1
read
显然,在后面添加命令gnome-terminal
可以使其工作。现在,我不需要每次重新启动时都在命令窗口中输入命令来使桌面快捷方式工作。
Set oShell = CreateObject ("Wscript.Shell")
Dim strArgs
strArgs = "wsl 'DISPLAY=:0 gnome-terminal;read"
oShell.Run strArgs, 0, false
答案2
问题是需要先启动 DBus。这个批处理脚本对我有用,还可以检查以确保 VcXsrv 正在运行:
tasklist /FI "IMAGENAME eq vcxsrv.exe" 2>NUL | find /I /N "vcxsrv.exe">NUL
if "%ERRORLEVEL%"=="0" echo X server is running
if not "%ERRORLEVEL%"=="0" start "" "C:\Program Files\VcXsrv\vcxsrv.exe" :0 -ac -terminate -lesspointer -multiwindow -clipboard -dpi auto
ubuntu run "sh -ic 'if [ -z \"$(pidof dbus-launch)\" ]; then export DISPLAY=127.0.0.1:0.0; dbus-launch --exit-with-x11; fi;'"
ubuntu run "DISPLAY=:0 gnome-terminal --working-directory=/home/kevin; sleep 1"
ubuntu
当然,如果您使用其他东西,请编辑目录并更改命令。