mirror of
https://github.com/mintty/wsltty.git
synced 2025-11-05 01:21:53 +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