mirror of
				https://github.com/mintty/wsltty.git
				synced 2025-11-04 09:01:52 +00:00 
			
		
		
		
	Compare commits
	
		
			10 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					9c9b88d416 | ||
| 
						 | 
					9feb6b7187 | ||
| 
						 | 
					416fcd1d0d | ||
| 
						 | 
					2457a1fb10 | ||
| 
						 | 
					8e09414b4b | ||
| 
						 | 
					4a0b7328da | ||
| 
						 | 
					afd3d6d9e8 | ||
| 
						 | 
					9c6d75b09e | ||
| 
						 | 
					47ede36283 | ||
| 
						 | 
					b488a82a52 | 
							
								
								
									
										59
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								README.md
									
									
									
									
									
								
							@@ -38,8 +38,15 @@ to enable the “Run anyway” button.
 | 
			
		||||
#### Installation from source repository ####
 | 
			
		||||
 | 
			
		||||
Checkout the wsltty repository, or download the source archive, unpack and rename the directory to `wsltty`.
 | 
			
		||||
Invoke `make`, then `make install`.
 | 
			
		||||
Note this has to be done within a Cygwin environment.
 | 
			
		||||
Install Alpine WSL from the Microsoft Store.
 | 
			
		||||
Invoke `make` (or `make pkg` if directory is called `wsltty-master`), 
 | 
			
		||||
then `make install`.
 | 
			
		||||
 | 
			
		||||
Note this has to be done within a Cygwin environment. A minimal Cygwin 
 | 
			
		||||
environment for this purpose would be installed with the 
 | 
			
		||||
[Cygwin installer](https://cygwin.com/setup-x86_64.exe) 
 | 
			
		||||
from [cygwin.com](https://cygwin.com/), 
 | 
			
		||||
with additional packages `make`, `gcc-g++ 9.3.0`, `unzip`, `zoo`.
 | 
			
		||||
 | 
			
		||||
#### Installation to non-default locations ####
 | 
			
		||||
 | 
			
		||||
@@ -74,7 +81,12 @@ then, invoke one of
 | 
			
		||||
 | 
			
		||||
A Windows Appx package and certificate is available in the [wsltty.appx](https://github.com/mintty/wsltty.appx/) repository.
 | 
			
		||||
 | 
			
		||||
<br clear=all>
 | 
			
		||||
### Uninstallation ###
 | 
			
		||||
 | 
			
		||||
To uninstall wsltty desktop, start menu, and context menu integration:
 | 
			
		||||
Open a Windows `cmd`, go into the wsltty installation folder:
 | 
			
		||||
`cd %LOCALAPPDATA%\wsltty` and run the `uninstall` script.
 | 
			
		||||
To uninstall wsltty software completely, remove the installation folder manually.
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
@@ -105,6 +117,21 @@ If wsltty fails with an error message that mentions a disk mount path (e.g. `/mn
 | 
			
		||||
workarounds may be the shutdown of the WSL V2 virtual machine (`wsl --shutdown` on the distro) 
 | 
			
		||||
or turning off “fast startup” in the Windows power settings (#246, #248).
 | 
			
		||||
 | 
			
		||||
#### WSL shell starting issues ####
 | 
			
		||||
 | 
			
		||||
With WSL V2, an additional background shell is run which may cause trouble 
 | 
			
		||||
for example when setting up automatic interaction between Windows side and 
 | 
			
		||||
WSL side 
 | 
			
		||||
(see https://github.com/mintty/wsltty/issues/197#issuecomment-687030527).
 | 
			
		||||
As a workaround, the following may be added to (the beginning of) the 
 | 
			
		||||
WSL shell initialization script `.bashrc` (adapt for other shells):
 | 
			
		||||
```
 | 
			
		||||
    # work around https://github.com/mintty/wsltty/issues/197
 | 
			
		||||
    if [[ -n "$WSL_DISTRO_NAME" ]]; then
 | 
			
		||||
      command -v cmd.exe > /dev/null || exit
 | 
			
		||||
    fi
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
### Configuration ###
 | 
			
		||||
@@ -112,7 +139,7 @@ or turning off “fast startup” in the Windows power settings (#246, #248).
 | 
			
		||||
#### Start Menu and Desktop shortcuts ####
 | 
			
		||||
 | 
			
		||||
In the Start Menu, the following shortcuts are installed:
 | 
			
		||||
* Shortcut <img align=absmiddle height=40 src=tux1.png>`WSL Terminal` to start the default WSL distribution (as configured with the Windows tool `wslconfig`)
 | 
			
		||||
* Shortcut <img align=absmiddle height=40 src=tux1.png>`WSL Terminal` to start the default WSL distribution (as configured with the Windows tool `wslconfig` or `wsl -s`)
 | 
			
		||||
* For each installed WSL distribution, for example `Ubuntu`, a shortcut like <img align=absmiddle height=40 src=ubuntu1.png>`Ubuntu Terminal` to start in the WSL user home
 | 
			
		||||
 | 
			
		||||
In the Start Menu subfolder WSLtty, the following additional shortcuts are installed:
 | 
			
		||||
@@ -120,7 +147,7 @@ In the Start Menu subfolder WSLtty, the following additional shortcuts are insta
 | 
			
		||||
* For each installed WSL distribution, for example `Ubuntu`, a shortcut like <img align=absmiddle height=40 src=ubuntu1.png>`Ubuntu Terminal %` to start in the Windows %USERPROFILE% home
 | 
			
		||||
 | 
			
		||||
One Desktop shortcut is installed:
 | 
			
		||||
* Shortcut <img align=absmiddle height=40 src=tux1.png>`WSL Terminal` to start the default WSL distribution (as configured with the Windows tool `wslconfig`)
 | 
			
		||||
* Shortcut <img align=absmiddle height=40 src=tux1.png>`WSL Terminal` to start the default WSL distribution (as configured with the Windows tool `wslconfig` or `wsl -s`)
 | 
			
		||||
 | 
			
		||||
Other, distribution-specific shortcuts can be copied to the desktop 
 | 
			
		||||
from the Start Menu if desired.
 | 
			
		||||
@@ -181,7 +208,7 @@ with the following precedence:
 | 
			
		||||
* `%LOCALAPPDATA%\wsltty\etc\minttyrc` (usage deprecated with wsltty)
 | 
			
		||||
 | 
			
		||||
Note:
 | 
			
		||||
* `%APPDATA%\wsltty\config` is the new user configuration file location. 
 | 
			
		||||
* `%APPDATA%\wsltty\config` is the user configuration file location. 
 | 
			
		||||
  Further subdirectories of `%APPDATA%\wsltty` are used for language, 
 | 
			
		||||
  themes, and sounds resource configuration. 
 | 
			
		||||
  Note the distinction from `%LOCALAPPDATA%\wsltty` which is the default 
 | 
			
		||||
@@ -193,7 +220,7 @@ Note:
 | 
			
		||||
  root directory of the cygwin standalone installation hosting wsltty. 
 | 
			
		||||
  So `%HOME%` would mean `%LOCALAPPDATA%\wsltty\home\%USERNAME%`.
 | 
			
		||||
  If you define `HOME` at Windows level, this changes accordingly.
 | 
			
		||||
  Note, however, that the WSL `HOME` is a completely different setting.
 | 
			
		||||
  Note, however, that the WSL `$HOME` is a completely different setting.
 | 
			
		||||
 | 
			
		||||
#### Shell selection and Login shell ####
 | 
			
		||||
 | 
			
		||||
@@ -211,6 +238,24 @@ a shell pathname and an optional `-l` parameter
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
### WSL locale setup and character encoding ###
 | 
			
		||||
 | 
			
		||||
Character encoding setup by locale setting is propagated from the terminal 
 | 
			
		||||
towards WSL. So you can select your favourite locale with configuration 
 | 
			
		||||
options or with command-line options, for example in a copied dedicated 
 | 
			
		||||
desktop shortcut.
 | 
			
		||||
 | 
			
		||||
If for example you wish to run WSL in GB18030 encoding, you may set options
 | 
			
		||||
`Locale=zh_CN` and `Charset=GB18030` and the WSL shell will adopt that 
 | 
			
		||||
setting, provided that the selected locale is configured to be available 
 | 
			
		||||
in the locale database of the WSL distribution.
 | 
			
		||||
This can be achieved in Ubuntu with the following commands:
 | 
			
		||||
* `sudo mkdir -p /var/lib/locales/supported.d`
 | 
			
		||||
* `sudo echo zh_CN.GB18030 GB18030 >> /var/lib/locales/supported.d/local`
 | 
			
		||||
* `sudo locale-gen`
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
### Components and Credits ###
 | 
			
		||||
 | 
			
		||||
For mintty, see the [Mintty homepage](http://mintty.github.io/) 
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										130
									
								
								makefile
									
									
									
									
									
								
							
							
						
						
									
										130
									
								
								makefile
									
									
									
									
									
								
							@@ -8,21 +8,45 @@
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# wsltty release
 | 
			
		||||
ver=3.2.0
 | 
			
		||||
ver=3.4.3
 | 
			
		||||
 | 
			
		||||
# wsltty appx release - must have 4 parts!
 | 
			
		||||
verx=3.2.0.0
 | 
			
		||||
verx=3.4.3.0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##############################
 | 
			
		||||
# mintty release version
 | 
			
		||||
minttyver=3.2.0
 | 
			
		||||
 | 
			
		||||
# wslbridge2 release version
 | 
			
		||||
#repo=Biswa96/wslbridge2
 | 
			
		||||
#wslbridgever=0.5
 | 
			
		||||
minttyver=3.4.3
 | 
			
		||||
 | 
			
		||||
##############################
 | 
			
		||||
 | 
			
		||||
# wslbridge2 repository
 | 
			
		||||
repo=Biswa96/wslbridge2
 | 
			
		||||
 | 
			
		||||
# wslbridge2 master release version
 | 
			
		||||
wslbridgever=0.6
 | 
			
		||||
 | 
			
		||||
# wslbridge2 latest version
 | 
			
		||||
#archive=master
 | 
			
		||||
#wslbridgedir=wslbridge2-$(archive)
 | 
			
		||||
 | 
			
		||||
# wslbridge2 branch or commit version (from fix-window-resize branch) and dir
 | 
			
		||||
#commit=70e0dcea1db122d076ce1578f2a45280cc92d09f
 | 
			
		||||
#commit=8b6dd7ee2b3102d72248990c21764c5cf86c6612
 | 
			
		||||
#archive=$(commit)
 | 
			
		||||
#wslbridgedir=wslbridge2-$(archive)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# wslbridge2 fork repository and version
 | 
			
		||||
#repo=mintty/wslbridge2
 | 
			
		||||
#wslbridgever=0.5.1
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# wslbridge2 release or fork archive and dir
 | 
			
		||||
archive=v$(wslbridgever)
 | 
			
		||||
wslbridgedir=wslbridge2-$(wslbridgever)
 | 
			
		||||
 | 
			
		||||
repo=mintty/wslbridge2
 | 
			
		||||
wslbridgever=0.5.1
 | 
			
		||||
 | 
			
		||||
##############################
 | 
			
		||||
 | 
			
		||||
@@ -108,7 +132,7 @@ fix-verx:
 | 
			
		||||
# clear binaries
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
	rm -fr wslbridge2-$(wslbridgever)/bin
 | 
			
		||||
	rm -fr $(wslbridgedir)/bin
 | 
			
		||||
	rm -fr bin
 | 
			
		||||
 | 
			
		||||
#############################################################################
 | 
			
		||||
@@ -116,20 +140,22 @@ clean:
 | 
			
		||||
 | 
			
		||||
wslbridge:	$(wslbridge)
 | 
			
		||||
 | 
			
		||||
wslbridge2-$(wslbridgever).zip:
 | 
			
		||||
	$(wgeto) https://github.com/$(repo)/archive/v$(wslbridgever).zip -o wslbridge2-$(wslbridgever).zip
 | 
			
		||||
$(wslbridgedir).zip:
 | 
			
		||||
	$(wgeto) https://github.com/$(repo)/archive/$(archive).zip -o $(wslbridgedir).zip
 | 
			
		||||
 | 
			
		||||
wslbridge-source:	wslbridge2-$(wslbridgever).zip
 | 
			
		||||
	unzip -ou wslbridge2-$(wslbridgever).zip
 | 
			
		||||
	cp wslbridge2-$(wslbridgever)/LICENSE LICENSE.wslbridge2
 | 
			
		||||
wslbridge-source:	$(wslbridgedir).zip
 | 
			
		||||
	unzip -o $(wslbridgedir).zip
 | 
			
		||||
	cp $(wslbridgedir)/LICENSE LICENSE.wslbridge2
 | 
			
		||||
	# patch
 | 
			
		||||
	cd $(wslbridgedir); patch -p1 < ../0001-notify-size-change-inband.patch
 | 
			
		||||
 | 
			
		||||
wslbridge-frontend:	wslbridge-source
 | 
			
		||||
	echo ------------- Compiling wslbridge2 frontend
 | 
			
		||||
	mkdir -p bin
 | 
			
		||||
	# frontend build
 | 
			
		||||
	cd wslbridge2-$(wslbridgever)/src; make -f Makefile.frontend RELEASE=1
 | 
			
		||||
	cd $(wslbridgedir)/src; make -f Makefile.frontend RELEASE=1
 | 
			
		||||
	# extract binaries
 | 
			
		||||
	cp wslbridge2-$(wslbridgever)/bin/wslbridge2.exe bin/
 | 
			
		||||
	cp $(wslbridgedir)/bin/wslbridge2.exe bin/
 | 
			
		||||
 | 
			
		||||
windir=$(shell cd "${WINDIR}"; pwd)
 | 
			
		||||
 | 
			
		||||
@@ -140,9 +166,9 @@ wslbridge-backend:	wslbridge-source
 | 
			
		||||
	# provide dependencies for backend build
 | 
			
		||||
	PATH="$(windir)/Sysnative:${PATH}" cmd /C wsl.exe -u root $(BuildDistr) $(shell env | grep http_proxy=) apk add make g++ linux-headers < /dev/null
 | 
			
		||||
	# invoke backend build
 | 
			
		||||
	cd wslbridge2-$(wslbridgever)/src; PATH="$(windir)/Sysnative:${PATH}" cmd /C wsl.exe $(BuildDistr) make -f Makefile.backend RELEASE=1 < /dev/null
 | 
			
		||||
	cd $(wslbridgedir)/src; PATH="$(windir)/Sysnative:${PATH}" cmd /C wsl.exe $(BuildDistr) make -f Makefile.backend RELEASE=1 < /dev/null
 | 
			
		||||
	# extract binaries
 | 
			
		||||
	cp wslbridge2-$(wslbridgever)/bin/wslbridge2-backend bin/
 | 
			
		||||
	cp $(wslbridgedir)/bin/wslbridge2-backend bin/
 | 
			
		||||
 | 
			
		||||
mintty-get:
 | 
			
		||||
	$(wgeto) https://github.com/mintty/mintty/archive/$(minttyver).zip -o mintty-$(minttyver).zip
 | 
			
		||||
@@ -214,38 +240,48 @@ appx-bin:
 | 
			
		||||
	cp /bin/cygwin1.dll bin/
 | 
			
		||||
	cp /bin/cygwin-console-helper.exe bin/
 | 
			
		||||
 | 
			
		||||
cop:	ver
 | 
			
		||||
CAB=wsltty-$(ver)-$(arch)
 | 
			
		||||
 | 
			
		||||
copcab:	ver
 | 
			
		||||
	mkdir -p $(CAB)
 | 
			
		||||
	cp bin/cygwin1.dll $(CAB)/
 | 
			
		||||
	cp bin/cygwin-console-helper.exe $(CAB)/
 | 
			
		||||
	cp bin/dash.exe $(CAB)/
 | 
			
		||||
	cp bin/regtool.exe $(CAB)/
 | 
			
		||||
	cp bin/mintty.exe $(CAB)/
 | 
			
		||||
	cp bin/zoo.exe $(CAB)/
 | 
			
		||||
	cp lang.zoo $(CAB)/
 | 
			
		||||
	cp themes.zoo $(CAB)/
 | 
			
		||||
	cp sounds.zoo $(CAB)/
 | 
			
		||||
	cp charnames.txt $(CAB)/
 | 
			
		||||
	cp bin/wslbridge2.exe $(CAB)/
 | 
			
		||||
	cp bin/wslbridge2-backend $(CAB)/
 | 
			
		||||
	cp mkshortcut.vbs $(CAB)/
 | 
			
		||||
	#cp bin/mkshortcut.exe $(CAB)/
 | 
			
		||||
	#cp bin/cygpopt-0.dll $(CAB)/
 | 
			
		||||
	#cp bin/cygiconv-2.dll $(CAB)/
 | 
			
		||||
	#cp bin/cygintl-8.dll $(CAB)/
 | 
			
		||||
	cp LICENSE.* $(CAB)/
 | 
			
		||||
	cp VERSION $(CAB)/
 | 
			
		||||
	cp *.lnk $(CAB)/
 | 
			
		||||
	cp *.ico $(CAB)/
 | 
			
		||||
	cp *.url $(CAB)/
 | 
			
		||||
	cp *.bat $(CAB)/
 | 
			
		||||
	cp config-distros.sh $(CAB)/
 | 
			
		||||
	cp mkshortcut.vbs $(CAB)/
 | 
			
		||||
 | 
			
		||||
cop:	copcab
 | 
			
		||||
	mkdir -p rel
 | 
			
		||||
	cp -fl $(CAB)/* rel/
 | 
			
		||||
 | 
			
		||||
installer:	cop
 | 
			
		||||
	# prepare build of installer
 | 
			
		||||
	rm -f rel/wsltty-$(ver)-install-$(arch).exe
 | 
			
		||||
	sed -e "s,%version%,$(ver)," -e "s,%arch%,$(arch)," makewinx.cfg > rel/wsltty.SED
 | 
			
		||||
	cp bin/cygwin1.dll rel/
 | 
			
		||||
	cp bin/cygwin-console-helper.exe rel/
 | 
			
		||||
	cp bin/dash.exe rel/
 | 
			
		||||
	cp bin/regtool.exe rel/
 | 
			
		||||
	cp bin/mintty.exe rel/
 | 
			
		||||
	cp bin/zoo.exe rel/
 | 
			
		||||
	cp lang.zoo rel/
 | 
			
		||||
	cp themes.zoo rel/
 | 
			
		||||
	cp sounds.zoo rel/
 | 
			
		||||
	cp charnames.txt rel/
 | 
			
		||||
	cp bin/wslbridge2.exe rel/
 | 
			
		||||
	cp bin/wslbridge2-backend rel/
 | 
			
		||||
	cp mkshortcut.vbs rel/
 | 
			
		||||
	#cp bin/mkshortcut.exe rel/
 | 
			
		||||
	#cp bin/cygpopt-0.dll rel/
 | 
			
		||||
	#cp bin/cygiconv-2.dll rel/
 | 
			
		||||
	#cp bin/cygintl-8.dll rel/
 | 
			
		||||
	cp LICENSE.* rel/
 | 
			
		||||
	cp VERSION rel/
 | 
			
		||||
	cp *.lnk rel/
 | 
			
		||||
	cp *.ico rel/
 | 
			
		||||
	cp *.url rel/
 | 
			
		||||
	cp *.bat rel/
 | 
			
		||||
	cp *.sh rel/
 | 
			
		||||
	cp *.vbs rel/
 | 
			
		||||
 | 
			
		||||
cab:	cop
 | 
			
		||||
	# build installer
 | 
			
		||||
	cd rel; iexpress /n wsltty.SED
 | 
			
		||||
	# build cab archive
 | 
			
		||||
	lcab -r $(CAB) rel/$(CAB).cab
 | 
			
		||||
 | 
			
		||||
install:	cop installbat
 | 
			
		||||
 | 
			
		||||
@@ -263,7 +299,7 @@ mintty-usr:	mintty-get mintty-appx
 | 
			
		||||
wsltty:	wslbridge cygwin mintty-build mintty-pkg
 | 
			
		||||
 | 
			
		||||
# standalone wsltty package build target:
 | 
			
		||||
pkg:	wslbridge cygwin mintty-get mintty-build mintty-pkg cab
 | 
			
		||||
pkg:	wslbridge cygwin mintty-get mintty-build mintty-pkg installer
 | 
			
		||||
 | 
			
		||||
# appx package contents target:
 | 
			
		||||
wsltty-appx:	wslbridge appx-bin mintty-get mintty-build-appx mintty-appx
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user