У меня есть сценарий 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
в моем ванильном wsl-терминале. Я не уверен, что запускается в моих процессах, что позволяет скрипту работать, но я действительно не хочу продолжать делать это каждый раз, когда перезагружаю свой компьютер.
По-видимому, добавление read
команда после gnome-terminal
заставляет это работать. Теперь я не должен вводить команды в командном окне с каждой перезагрузкой, чтобы заставить настольный ярлык работать.
Set oShell = CreateObject ("Wscript.Shell")
Dim strArgs
strArgs = "wsl 'DISPLAY=:0 gnome-terminal;read"
oShell.Run strArgs, 0, false
Проблема в том, что сначала нужно запустить 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
, если вы используете что-то другое.