diff --git a/README.md b/README.md index d1e9e25..34d5c66 100644 --- a/README.md +++ b/README.md @@ -18,9 +18,33 @@ WSLtty components --- -### Requirements ### +### Launching WSL ### -To connect to WSL, wsltty uses wslbridge2, which uses undocumented +Since wsltty 3.8.0, mintty launches WSL using the native Windows launcher +gateway `wsl.exe`. Previously, this approach used to fail due to two problems: +* The wslbridge approach would fail in notoriously frequent cases + due to its need to use undocumented Windows APIs. +* Using `wsl.exe` directly, the _conhost_ layer hooked into the + workflow used to obstruct transparent terminal operation in multiple ways. + +The _conhost_ layer has meanwhile been modernised and its enforced detour +through the Windows console API has been dropped, in the course of the +Windows Terminal project. The new _conhost_, however, has not yet been +deployed with Windows (as of summer 2025) and will probably not be +deployed with Windows 10 anymore. So in order to get fully transparent +terminal interaction between WSL and wsltty, the updated _conhost_ needs +to be patched into Windows manually, following instruction in the +[mintty wiki, section Interaction with WSL](https://github.com/mintty/mintty/wiki/Tips#interaction-with-wsl-and-other-windows-programs). + +If for some reason, you should need to switch back to the wslbridge approach, +this can be configured with setting `WSLbridge=2` in the config file. The +wslbridge2 gateway is still deployed with wsltty for that matter. +(If for a very old Windows 10 version you still need the original +wslbridge gateway, set `WSLbridge=1` and deploy it manually.) + +#### WSL bridge requirements in previous releases #### + +To connect to WSL, wsltty used wslbridge2, which uses undocumented Windows APIs that have been changed various times, so wslbridge2 needed to catch up with incompatible changes, particularly to support WSL V2. (See e.g. issue #343; to work with WSL V2, wsltty 2.0.0 needed a WSL update diff --git a/VERSION b/VERSION index a0fc9e0..c77a7de 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.7.8 +3.7.9 diff --git a/makefile b/makefile index 84e7cb4..670b163 100644 --- a/makefile +++ b/makefile @@ -9,20 +9,18 @@ # make wsltty build the software, using the local copy of mintty -# wsltty release -ver=3.7.8 - -# wsltty appx release - must have 4 parts! -verx=3.7.8.1 - - ############################## -# mintty release version +# mintty and wsltty release versions +ver=3.8.0 -minttyver=3.7.8 +minttyver=3.8.0 minrepo=git@github.com:mintty/mintty.git +############################## +# wsltty appx release (obsolete) - must have 4 parts! +appxver=$(wslttyver).1 + ############################## # wslbridge2 repository and release version @@ -131,14 +129,14 @@ checkarch: ############################################################################# # patch version information for appx package configuration -fix-verx: +fix-appxver: echo patching $(WINSDKVER) into Launcher config cd Launcher; sed -i~ -e "// s,v[.0-9]*,$(WINSDKVER)," Launcher.csproj echo patched Launcher.csproj - echo patching $(verx) into app config - sed -i~ -e '/ rel/wsltty.SED + sed -e "s,%version%,$(wslttyver)," -e "s,%arch%,$(arch)," makewinx.cfg > rel/wsltty.SED # build installer - cd rel; iexpress /n wsltty.SED + cd rel; iexpress /n /q wsltty.SED silent-installer: # prepare build of installer rm -f rel/$(CAB)-install-quiet.exe cd rel; sed -e "/ShowInstallProgramWindow/ s/0/1/" -e "/HideExtractAnimation/ s/0/1/" -e "/InstallPrompt/ s/=.*/=/" -e "/FinishMessage/ s/=.*/=/" -e "/TargetName/ s/install.exe/install-quiet.exe/" wsltty.SED > wsltty-quiet.SED # build installer - cd rel; iexpress /n wsltty-quiet.SED + cd rel; iexpress /n /q wsltty-quiet.SED InstallPrompt=Install Mintty terminal for WSL Portable? FinishMessage=Mintty for WSL Portable installation finished @@ -343,7 +341,7 @@ portable-installer: rm -f rel/$(CAB)-install-portable.exe cd rel; sed -e "/InstallPrompt/ s/=.*/=$(InstallPrompt)/" -e "/FinishMessage/ s/=.*/=$(FinishMessage)/" -e "/AppLaunched/ s/install/install-portable/" -e "/TargetName/ s/install.exe/install-portable.exe/" wsltty.SED > wsltty-portable.SED # build installer - cd rel; iexpress /n wsltty-portable.SED + cd rel; iexpress /n /q wsltty-portable.SED install: cop installbat @@ -351,7 +349,7 @@ installbat: cd rel; cmd /C install ver: - echo $(ver) > VERSION + echo $(wslttyver) > VERSION mintty: mintty-get mintty-build @@ -370,7 +368,7 @@ pkg: wslbridge cygwin mintty-get mintty-build mintty-pkg installer wsltty-appx: wslbridge appx-bin mintty-get mintty-build-appx mintty-appx # appx package target: -appx: wsltty-appx fix-verx +appx: wsltty-appx fix-appxver sh ./build.sh #############################################################################