1
0
mirror of https://github.com/mintty/wsltty.git synced 2025-11-03 08:31:51 +00:00

Compare commits

...

7 Commits

Author SHA1 Message Date
mintty
2cd1819d8b 3.8.0.3 2025-08-30 00:00:00 +00:00
Thomas Wolff
bbe0dd4e56 3.8.0.2, workaround for corrupted display (mintty/mintty#1332) 2025-08-28 00:00:00 +00:00
mintty
39151ffe8e hints to prevent display corruption 2025-08-27 00:00:00 +00:00
mintty
25460e4bbd project page refers to display glitches explicitly (mintty/mintty#1332) 2025-08-26 00:00:00 +00:00
mintty
a7f1720a22 fix missing git upload 2025-08-24 00:00:00 +00:00
mintty
92210d81d7 3.8.0 2025-08-22 00:00:00 +00:00
mintty
c0094d675f 3.8.0 2025-08-22 00:00:00 +00:00
5 changed files with 75 additions and 25 deletions

View File

@@ -18,9 +18,43 @@ 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 the instructions in the
[mintty wiki, section Interaction with WSL](https://github.com/mintty/mintty/wiki/Tips#interaction-with-wsl-and-other-windows-programs)
to patch OpenConsole into your Windows as conhost replacement.
#### Troubleshooting display corruption ####
With the new conhost/conpty layer unfortunately display appears broken
in certain cases. Two workarounds are available, both setting an option
in a config file (%APPDATA%/wsltty/config):
* `Baud=999999`
or
* `WSLbridge=2`.
The latter switches back to the wslbridge launching approach; 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

View File

@@ -1 +1 @@
3.7.8
3.8.0.3

View File

@@ -325,7 +325,7 @@ config () {
if $ok && ! $remove && [ -n "$distro" ]
then # fix #163: backend missing +x with certain mount options
echo Setting +x wslbridge2 backends for distro "'$distro'"
echo Setting +x wslbridge2 backend for distro "'$distro'"
(cd "$INSTDIR"; cd bin; PATH="${WINDIR}/Sysnative:${PATH}" wsl.exe -d "$distro" chmod +x wslbridge2-backend)
# (cd "$LOCALAPPDATA/wsltty/bin"; wsl.exe -d "$distro" chmod +x wslbridge2-backend)
# (cd ... ; "$SYSTEMROOT/System32/bash.exe" "$guid" -c chmod +x wslbridge2-backend)

View File

@@ -155,6 +155,24 @@ mkdir "%configdir%\emojis" 2> nul:
copy "%installdir%\usr\share\mintty\emojis\getemojis" "%configdir%\emojis" 2> nul:
copy "%installdir%\usr\share\mintty\emojis\getflags" "%configdir%\emojis" 2> nul:
goto noetc
rem 3.8.0.2: create global config file for troubleshooting
mkdir "%installdir%\etc" 2> nul:
echo ###########################>"%installdir%\etc\minttyrc"
echo # Troubleshooting>>"%installdir%\etc\minttyrc"
echo # To work around a pty interworking issue between wsl and cygwin,>>"%installdir%\etc\minttyrc"
echo # we need to apply this configuration for now:>>"%installdir%\etc\minttyrc"
echo Baud=999999>>"%installdir%\etc\minttyrc"
goto etcok
:noetc
rem 3.8.0.3: remove previous troubleshooting patch
if exist "%installdir%\etc\minttyrc" del "%installdir%\etc\minttyrc"
if exist "%installdir%\etc" rmdir "%installdir%\etc"
:etcok
rem create config file if it does not yet exist
if exist "%configdir%\config" goto appconfig
echo # To use common configuration in %%APPDATA%%\mintty, simply remove this file>"%configdir%\config"

View File

@@ -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
wslttyver=3.8.0.3
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 "/<supportedRuntime / s,Version=v[.0-9]*,Version=$(WINSDKVER)," app.config
echo patched app.config
cd Launcher; sed -i~ -e "/<TargetFrameworkVersion>/ s,v[.0-9]*,$(WINSDKVER)," Launcher.csproj
echo patched Launcher.csproj
echo patching $(verx) into app config
sed -i~ -e '/<Identity / s,Version="[.0-9]*",Version="$(verx)",' AppxManifest.xml
echo patching $(appxver) into app config
sed -i~ -e '/<Identity / s,Version="[.0-9]*",Version="$(appxver)",' AppxManifest.xml
echo patched AppxManifest.xml
#############################################################################
@@ -207,8 +205,8 @@ mintty-git:
wslbuild=LDFLAGS="-static -static-libgcc -s"
appxbuild=$(wslbuild) CCOPT=-DWSLTTY_APPX
wslversion=VERSION_SUFFIX=" wsltty $(ver)" WSLTTY_VERSION="$(ver)"
appxversion=VERSION_SUFFIX=" wsltty appx $(verx)" WSLTTY_VERSION="$(verx)"
wslversion=VERSION_SUFFIX=" wsltty $(wslttyver)" WSLTTY_VERSION="$(wslttyver)"
appxversion=VERSION_SUFFIX=" wsltty appx $(appxver)" WSLTTY_VERSION="$(appxver)"
mintty-build:
# ensure rebuild of version-specific check and message
@@ -279,7 +277,7 @@ appx-bin:
cp /bin/cygwin1.dll bin/
cp /bin/cygwin-console-helper.exe bin/
CAB=wsltty-$(ver)-$(arch)
CAB=wsltty-$(wslttyver)-$(arch)
copcab: ver
mkdir -p $(CAB)
@@ -324,16 +322,16 @@ cab:
normal-installer:
# prepare build of installer
rm -f rel/$(CAB)-install.exe
sed -e "s,%version%,$(ver)," -e "s,%arch%,$(arch)," makewinx.cfg > 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
#############################################################################