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

Compare commits

...

19 Commits
3.1.4 ... 3.4.2

Author SHA1 Message Date
mintty
416fcd1d0d 3.4.2 2020-11-04 18:39:06 +01:00
mintty
2457a1fb10 doc build (#247) 2020-10-24 17:39:42 +02:00
mintty
8e09414b4b 3.4.1 2020-10-24 17:22:10 +02:00
mintty
4a0b7328da document uninstallation (#258) 2020-10-13 14:53:25 +02:00
mintty
afd3d6d9e8 hint to workaround for #197;
some minor tweaks
2020-09-04 11:58:28 +02:00
mintty
9c6d75b09e add details for installation cygwin for an installation from source 2020-08-27 14:59:12 +02:00
mintty
47ede36283 3.3.0 2020-08-06 20:50:20 +02:00
mintty
b488a82a52 3.3.0 2020-08-06 19:58:27 +02:00
mintty
cadefd0ec0 3.2.0 2020-06-20 19:51:21 +02:00
mintty
0b4418399b 3.1.8 2020-06-11 16:39:39 +02:00
mintty
1f4de96e01 notes on curing various WSL startup issues (#246, #248) 2020-06-02 22:45:05 +02:00
mintty
1d8c80a6d4 disclaimer for choco and scoop installation instructions (~240) 2020-04-29 17:49:49 +02:00
mintty
e85b7fbb6a add note about Windows Defender settings (#239) 2020-04-17 13:05:55 +02:00
mintty
ae9dff3427 3.1.4.2 2020-04-02 15:00:32 +02:00
mintty
b8ad6553c4 fix installer: invoke configuration (#232), shortcuts generation (#237, #162),
usernames with spaces (#230) and other chars (#213), #162 generate shortcuts
2020-04-02 14:44:32 +02:00
mintty
8964534a5c 2020-04-02 14:44:21 +02:00
mintty
70b6f4cc45 fix imported distros fix (#226) 2020-04-01 20:27:19 +02:00
mintty
223671ce0d Merge pull request #236 from Conduitry/fix-fallback-icon
fix fallback icon in generated shortcuts
2020-04-01 20:25:09 +02:00
Conduitry
37032d79fa fix fallback icon in generated shortcuts 2020-03-30 01:13:25 -04:00
9 changed files with 262 additions and 87 deletions

View File

@@ -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 ####
@@ -50,6 +57,9 @@ the optional second parameter designates the configuration directory.
### Installation with other package management environments ###
Note that these are 3rd-party contributions and do not necessarily
provide the latest version.
#### Chocolatey ####
If you use the [Chocolatey package manager](https://chocolatey.org/),
@@ -71,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.
---
@@ -90,6 +105,33 @@ is discouraged because that would bypass essential options.
Terminal communication with WSL via its modes V1 or V2 is handled
automatically by wsltty (mintty and the wslbridge2 gateway).
#### Starting issues ####
If wsltty fails with an
`Error: Could not fork child process: Resource temporarily unavailable`...,
its runtime may be affected by some over-ambitious virus defense strategy.
For example, with Windows Defender, option “Force randomization for images”
should be disabled.
If wsltty fails with an error message that mentions a disk mount path (e.g. `/mnt/c`),
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 ###
@@ -97,7 +139,7 @@ automatically by wsltty (mintty and the wslbridge2 gateway).
#### 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:
@@ -105,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.
@@ -158,14 +200,15 @@ Mintty can maintain its configuration file in various locations,
with the following precedence:
* file given with mintty option `-c` (not used by wsltty default installation)
* file `config` in directory given with mintty option `--configdir`
* This is `%APPDATA%\wsltty\config` in the default wsltty installation.
* **`%APPDATA%\wsltty\config`** in the default wsltty installation
* `%HOME%\.minttyrc` (usage deprecated with wsltty)
* `%HOME%\.config\mintty\config` (usage deprecated with wsltty)
* `%APPDATA%\mintty\config`
* common config file for all mintty installation instances
* **`%APPDATA%\mintty\config`**
* `%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
@@ -177,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 ####
@@ -195,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/)

View File

@@ -1 +1 @@
3.1.4
3.4.2

1
cmd2.bat Executable file
View File

@@ -0,0 +1 @@
%1 "%from%" "%to%"

View File

@@ -1,12 +1,42 @@
#! /bin/sh
# dash built-in echo enforces interpretation of \t etc
echoc () {
#cmd /c echo $*
printf '%s\n' "$*"
}
copy () {
from="$1"
to="$2"
export from to
cmd /c cmd2.bat copy
}
delete () {
from=/F
to="$1"
export from to
cmd /c cmd2.bat del
}
compare () {
from="$1"
to="$2"
export from to
cmd /c cmd2.bat comp/M
}
case "$installdir" in
?*) custominst=true;;
"") custominst=false;;
esac
INSTDIR="${installdir:-$LOCALAPPDATA/wsltty}"
echoc "Installing wsltty into $INSTDIR"
INSTDIR=`cd "$INSTDIR"; pwd`
installcop=${installdir:-"$LOCALAPPDATA\\wsltty"}
installdir=${installdir:-'%LOCALAPPDATA%\wsltty'}
target="$installdir"'\bin\mintty.exe'
@@ -39,6 +69,9 @@ case "$1" in
-shortcuts-remove)
remove=true
shift;;
-default)
alldistros=false
shift;;
-contextmenu)
contextmenu=true
shift;;
@@ -76,20 +109,21 @@ case "$1" in
shift;;
esac
if $config && ! $contextmenu
then
# remove shortcut entries in Start menu and cmd-line bat shortcuts
(cd "$INSTDIR"
for lnk in *.lnk
do
if cmd /C comp/M "$lnk" "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\$lnk"
then cmd /C del "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\$lnk"
if compare "$lnk" "$APPDATA\\Microsoft\\Windows\\Start Menu\\Programs\\$lnk"
then delete "$APPDATA\\Microsoft\\Windows\\Start Menu\\Programs\\$lnk"
fi
done
for bat in *.bat
do
if cmd /C comp/M "$bat" "%LOCALAPPDATA%\\Microsoft\\WindowsApps\\$bat"
then cmd /C del "%LOCALAPPDATA%\\Microsoft\\WindowsApps\\$bat"
if compare "$bat" "$LOCALAPPDATA\\Microsoft\\WindowsApps\\$bat"
then delete "$LOCALAPPDATA\\Microsoft\\WindowsApps\\$bat"
fi
done
)
@@ -121,10 +155,6 @@ regtool () {
}
fi
# dash built-in echo enforces interpretation of \t etc
echoc () {
cmd /c echo $*
}
if $config
then while read line; do echo "$line"; done <</EOB > mkbat.bat
@@ -158,10 +188,10 @@ then
bridgeargs=-contextmenu-remove
cscript /nologo mkshortcut.vbs "/name:remove from context menu" "/min:true"
cmd /C copy "add to context menu.lnk" "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\WSLtty"
cmd /C copy "add default to context menu.lnk" "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\WSLtty"
cmd /C copy "remove from context menu.lnk" "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\WSLtty"
cmd /C copy "configure WSL shortcuts.lnk" "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\WSLtty"
copy "add to context menu.lnk" "$APPDATA\\Microsoft\\Windows\\Start Menu\\Programs\\WSLtty"
copy "add default to context menu.lnk" "$APPDATA\\Microsoft\\Windows\\Start Menu\\Programs\\WSLtty"
copy "remove from context menu.lnk" "$APPDATA\\Microsoft\\Windows\\Start Menu\\Programs\\WSLtty"
copy "configure WSL shortcuts.lnk" "$APPDATA\\Microsoft\\Windows\\Start Menu\\Programs\\WSLtty"
# restore target
target="$installdir"'\bin\mintty.exe'
@@ -212,21 +242,25 @@ config () {
psh_cmd='([xml]$(Get-Content '"\"$manifest\""')).Package.Applications.Application.Executable'
executable=`appex "$manifest"`
if [ -r "$ProgramW6432/WindowsApps/$distrinst/$executable" ]
then #icon="%ProgramW6432%/WindowsApps/$distrinst/$executable"
icon="$ProgramW6432/WindowsApps/$distrinst/$executable"
then icon="$ProgramW6432/WindowsApps/$distrinst/$executable"
elif [ -r "$ProgramW6432/WindowsApps/$distrinst/images/icon.ico" ]
then #icon="%ProgramW6432%/WindowsApps/$distrinst/images/icon.ico"
icon="$ProgramW6432/WindowsApps/$distrinst/images/icon.ico"
else icon="$installdir"'\wsl.ico'
then icon="$ProgramW6432/WindowsApps/$distrinst/images/icon.ico"
else icon="$installcop"'\wsl.ico'
fi
root="$basepath/rootfs"
elif [ -f "$basepath/$distro.exe" ]
then
icon="$basepath/$distro.exe"
root="$basepath/rootfs"
else
icon="%LOCALAPPDATA%/lxss/bash.ico"
elif [ -d "$LOCALAPPDATA/lxss" ]
then
# legacy "Bash on Windows"
icon="$LOCALAPPDATA/lxss/bash.ico"
root="$basepath"
else
# imported distro? (#226, #236)
icon="$installcop"'\wsl.ico'
root="$basepath/rootfs"
fi
# invocation parameters for mintty
@@ -240,7 +274,7 @@ config () {
DefaultDistribution|"") # WSL default installation
distro=
name=WSL
icon="$installdir"'\wsl.ico'
icon="$installcop"'\wsl.ico'
minttyargs='--WSL= --configdir="'"$configdir"'"'
MINTARGS='--WSL= --configdir="'"$CONFDIR"'"'
#bridgeargs='-t'
@@ -280,43 +314,57 @@ config () {
reg delete "$direckey\\shell\\$keyname" /f
reg delete "$direckey\\Background\\shell\\$keyname" /f
else
reg add "$direckey\\shell\\$keyname" /d "$name Terminal" /f
reg add "$direckey\\shell\\$keyname" /v Icon /d "$icon" /f
cmd /C reg add "$direckey\\shell\\$keyname\\command" /d "\"$target\" -i \"$icon\" --dir \"%1\" $minttyargs $bridgeargs" /f
reg add "$direckey\\Background\\shell\\$keyname" /d "$name Terminal" /f
reg add "$direckey\\Background\\shell\\$keyname" /v Icon /d "$icon" /f
cmd /C reg add "$direckey\\Background\\shell\\$keyname\\command" /d "\"$target\" -i \"$icon\" $minttyargs $bridgeargs" /f
direckey='/HKEY_CURRENT_USER/Software/Classes/Directory'
echoc Registry setting "$direckey/[Background/]shell/$keyname"
target="$installcop"'\bin\mintty.exe'
regtool add "$direckey/shell"
regtool add "$direckey/shell/$keyname"
regtool set "$direckey/shell/$keyname/" -s "$name Terminal"
regtool set "$direckey/shell/$keyname/Icon" -s "$icon"
regtool add "$direckey/shell/$keyname/command"
regtool set "$direckey/shell/$keyname/command/" -s "\"$target\" -i \"$icon\" --dir \"%1\" $MINTARGS $bridgeargs"
regtool add "$direckey/Background/shell"
regtool add "$direckey/Background/shell/$keyname"
regtool set "$direckey/Background/shell/$keyname/" -s "$name Terminal"
regtool set "$direckey/Background/shell/$keyname/Icon" -s "$icon"
regtool add "$direckey/Background/shell/$keyname/command"
regtool set "$direckey/Background/shell/$keyname/command/" -s "\"$target\" -i \"$icon\" $MINTARGS $bridgeargs"
fi
else
# invocation shortcuts and scripts
if $remove
then
cmd /C del "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\$name Terminal.lnk"
cmd /C del "%LOCALAPPDATA%\\Microsoft\\WindowsApps\\$name.bat"
cmd /C del "%LOCALAPPDATA%\\Microsoft\\WindowsApps\\$name~.bat"
delete "$APPDATA\\Microsoft\\Windows\\Start Menu\\Programs\\$name Terminal.lnk"
delete "$LOCALAPPDATA\\Microsoft\\WindowsApps\\$name.bat"
delete "$LOCALAPPDATA\\Microsoft\\WindowsApps\\$name~.bat"
if [ "$name" = "WSL" ]
then
# determine actual Desktop folder
desktopkey='\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Desktop'
desktop=`regtool get "$desktopkey"`
cmd /C del "$desktop\\$name Terminal.lnk"
case "$desktop" in
%USERPROFILE%*) desktop="$USERPROFILE${desktop#%USERPROFILE%}";;
esac
delete "$desktop\\$name Terminal.lnk"
fi
else
# desktop shortcut in %USERPROFILE% -> Start Menu - WSLtty
cscript /nologo mkshortcut.vbs "/name:$name Terminal %"
#mkshortcut.exe -n "$name Terminal %" -i "$icon" "$TARGETPATH" -a "$MINTARGS" -d "" -w %USERPROFILE%
cmd /C copy "$name Terminal %.lnk" "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\WSLtty"
copy "$name Terminal %.lnk" "$APPDATA\\Microsoft\\Windows\\Start Menu\\Programs\\WSLtty"
# launch script in . -> WSLtty home, WindowsApps launch folder
cmd /C mkbat.bat "$name"
cmd /C copy "$name.bat" "%LOCALAPPDATA%\\Microsoft\\WindowsApps"
copy "$name.bat" "$LOCALAPPDATA\\Microsoft\\WindowsApps"
# store backup copies in installation dir
if [ "$PWD" != "$INSTDIR" ]
then
cmd /C copy "$name Terminal %.lnk" "$installdir"
cmd /C copy "$name.bat" "$installdir"
copy "$name Terminal %.lnk" "$installcop"
copy "$name.bat" "$installcop"
fi
# prepare versions to target WSL home directory
@@ -327,29 +375,32 @@ config () {
# desktop shortcut in ~ -> Start Menu
cscript /nologo mkshortcut.vbs "/name:$name Terminal"
#mkshortcut.exe -n "$name Terminal" -i "$icon" "$TARGETPATH" -a "$MINTARGS" -d "" -w %USERPROFILE%
cmd /C copy "$name Terminal.lnk" "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs"
copy "$name Terminal.lnk" "$APPDATA\\Microsoft\\Windows\\Start Menu\\Programs"
# default desktop shortcut in ~ -> Desktop
if [ "$name" = "WSL" ]
then
#cmd /C copy "$name Terminal.lnk" "%USERPROFILE%\\Desktop"
#cmd /C copy "$name Terminal.lnk" "%APPDATA%\\..\\Desktop\\"
#copy "$name Terminal.lnk" "$USERPROFILE\\Desktop"
#copy "$name Terminal.lnk" "$APPDATA\\..\\Desktop\\"
# the above does not work reliably (see #166)
# determine actual Desktop folder
desktopkey='\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Desktop'
desktop=`regtool get "$desktopkey"`
cmd /C copy "$name Terminal.lnk" "$desktop\\"
case "$desktop" in
%USERPROFILE%*) desktop="$USERPROFILE${desktop#%USERPROFILE%}";;
esac
copy "$name Terminal.lnk" "$desktop\\"
fi
# launch script in ~ -> WSLtty home, WindowsApps launch folder
cmd /C mkbat.bat "$name~"
cmd /C copy "$name~.bat" "%LOCALAPPDATA%\\Microsoft\\WindowsApps"
copy "$name~.bat" "$LOCALAPPDATA\\Microsoft\\WindowsApps"
# store backup copies in installation dir
if [ "$PWD" != "$INSTDIR" ]
then
cmd /C copy "$name Terminal.lnk" "$installdir"
cmd /C copy "$name~.bat" "$installdir"
copy "$name Terminal.lnk" "$installcop"
copy "$name~.bat" "$installcop"
fi
fi

3
dequote.bat Executable file
View File

@@ -0,0 +1,3 @@
@echo off
rem https://ss64.com/nt/syntax-dequote.html
for /f "delims=" %%A in ('echo %%%1%%') do set %1=%%~A

View File

@@ -4,16 +4,21 @@ set refinstalldir=%%LOCALAPPDATA%%\wsltty
set installdir="%LOCALAPPDATA%\wsltty"
set refconfigdir=%%APPDATA%%\wsltty
set configdir="%APPDATA%\wsltty"
call dequote installdir
call dequote configdir
set oldroot="%installdir%"
set oldhomedir="%installdir%\home\%USERNAME%"
call dequote oldroot
call dequote oldhomedir
set oldconfigdir="%oldhomedir%\.config\mintty"
call dequote oldconfigdir
if not "%1" == "" set refinstalldir=%1 && set installdir=%1
if not "%2" == "" set refconfigdir=%2 && set configdir=%2
:deploy
mkdir "%installdir%"
mkdir "%installdir%" 2> nul:
rem clean up previous installation artefacts
del /Q "%installdir%\*.bat"
@@ -31,6 +36,8 @@ rem copy "WSL Terminal %%.lnk" "%installdir%"
copy config-distros.sh "%installdir%"
copy mkshortcut.vbs "%installdir%"
copy cmd2.bat "%installdir%"
copy dequote.bat "%installdir%"
rem allow persistent customization of default icon:
if not exist "%installdir%\wsl.ico" copy tux.ico "%installdir%\wsl.ico"
@@ -39,16 +46,16 @@ copy uninstall.bat "%installdir%"
if not exist "%installdir%\bin" goto instbin
rem move previous programs possibly in use out of the way
del /Q "%installdir%\bin\*.old"
del /Q "%installdir%\bin\*.old" 2> nul:
ren "%installdir%\bin\cygwin1.dll" cygwin1.dll.old
ren "%installdir%\bin\cygwin-console-helper.exe" cygwin-console-helper.exe.old
ren "%installdir%\bin\mintty.exe" mintty.exe.old
ren "%installdir%\bin\wslbridge2.exe" wslbridge2.exe.old
ren "%installdir%\bin\wslbridge2-backend" wslbridge2-backend.old
del /Q "%installdir%\bin\*.old"
del /Q "%installdir%\bin\*.old" 2> nul:
:instbin
mkdir "%installdir%\bin"
mkdir "%installdir%\bin" 2> nul:
copy cygwin1.dll "%installdir%\bin"
copy cygwin-console-helper.exe "%installdir%\bin"
copy mintty.exe "%installdir%\bin"
@@ -65,22 +72,23 @@ rem copy cygiconv-2.dll "%installdir%"\bin
rem copy cygintl-8.dll "%installdir%"\bin
rem create system config directory and copy config archive
mkdir "%installdir%\usr\share\mintty\lang"
mkdir "%installdir%\usr\share\mintty\lang" 2> nul:
copy lang.zoo "%installdir%\usr\share\mintty\lang"
mkdir "%installdir%\usr\share\mintty\themes"
mkdir "%installdir%\usr\share\mintty\themes" 2> nul:
copy themes.zoo "%installdir%\usr\share\mintty\themes"
mkdir "%installdir%\usr\share\mintty\sounds"
mkdir "%installdir%\usr\share\mintty\sounds" 2> nul:
copy sounds.zoo "%installdir%\usr\share\mintty\sounds"
mkdir "%installdir%\usr\share\mintty\info"
mkdir "%installdir%\usr\share\mintty\info" 2> nul:
copy charnames.txt "%installdir%\usr\share\mintty\info"
mkdir "%installdir%\usr\share\mintty\icon"
mkdir "%installdir%\usr\share\mintty\icon" 2> nul:
copy tux.ico "%installdir%\usr\share\mintty\icon"
copy mintty.ico "%installdir%\usr\share\mintty\icon"
rem create Start Menu Folder
set smf="%APPDATA%\Microsoft\Windows\Start Menu\Programs\WSLtty"
mkdir "%smf%"
call dequote smf
mkdir "%smf%" 2> nul:
rem clean up previous installation
del /Q "%smf%\*.lnk"
@@ -93,7 +101,7 @@ copy "configure WSL shortcuts.lnk" "%smf%"
rem copy "WSL Terminal.lnk" "%smf%"
rem copy "WSL Terminal %%.lnk" "%smf%"
rem clean up previous installation
rmdir /S /Q "%smf%\context menu shortcuts"
rmdir /S /Q "%smf%\context menu shortcuts" 2> nul:
rem unpack config files in system config directory
cd /D "%installdir%\usr\share\mintty\lang"
@@ -102,6 +110,7 @@ cd /D "%installdir%\usr\share\mintty\themes"
"%installdir%\bin\zoo" xO themes
cd /D "%installdir%\usr\share\mintty\sounds"
"%installdir%\bin\zoo" xO sounds
cd /D "%installdir%"
:migrate configuration
@@ -116,24 +125,28 @@ rmdir "%oldhomedir%\.config"
if exist "%configdir%\config" goto deloldhome
if exist "%oldhomedir%\.minttyrc" copy "%oldhomedir%\.minttyrc" "%configdir%\config" && del "%oldhomedir%\.minttyrc"
:deloldhome
rmdir "%oldhomedir%"
rmdir "%oldroot%\home"
rmdir "%oldhomedir%" 2> nul:
rmdir "%oldroot%\home" 2> nul:
:userconfig
rem create user config directory and subfolders
mkdir "%configdir%\lang"
mkdir "%configdir%\themes"
mkdir "%configdir%\sounds"
mkdir "%configdir%\lang" 2> nul:
mkdir "%configdir%\themes" 2> nul:
mkdir "%configdir%\sounds" 2> nul:
rem create config file if it does not yet exist
if not exist "%configdir%\config" echo # To use common configuration in %%APPDATA%%\mintty, simply remove this file>"%configdir%\config"
:appconfig
rem distro-specific stuff: shortcuts and launch scripts
cd /D "%installdir%"
bin\dash.exe "%installdir%\config-distros.sh"
rem bin\dash.exe "%installdir%\config-distros.sh" -contextmenu
echo Configuring for WSL distributions
bin\dash.exe "config-distros.sh"
rem rem bin\dash.exe "config-distros.sh" -contextmenu
:end

View File

@@ -8,16 +8,45 @@
# wsltty release
ver=3.1.4
ver=3.4.2
# wsltty appx release - must have 4 parts!
verx=3.1.4.0
verx=3.4.2.0
##############################
# mintty release version
minttyver=3.1.4
# wslbridge2 release version
wslbridgever=0.5
minttyver=3.4.2
##############################
# 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)
##############################
@@ -27,6 +56,11 @@ wslbridgever=0.5
# wslbridge branch or commit to build from source;
wslbridge=wslbridge-frontend wslbridge-backend
##############################
# build backend on a musl-libc-based distribution
# (reportedly not needed anymore but untested)
BuildDistr=-d Alpine
##############################
# Windows SDK version for appx
WINSDKKEY=/HKEY_LOCAL_MACHINE/SOFTWARE/WOW6432Node/Microsoft/.NET Framework Platform/Setup/Multi-Targeting Pack
@@ -94,28 +128,34 @@ fix-verx:
sed -i~ -e '/<Identity / s,Version="[.0-9]*",Version="$(verx)",' AppxManifest.xml
echo patched AppxManifest.xml
#############################################################################
# clear binaries
clean:
rm -fr $(wslbridgedir)/bin
rm -fr bin
#############################################################################
# generation
wslbridge: $(wslbridge)
wslbridge2-$(wslbridgever).zip:
$(wgeto) https://github.com/Biswa96/wslbridge2/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/
# build backend on a musl-libc-based distribution
BuildDistr=Alpine
cp $(wslbridgedir)/bin/wslbridge2.exe bin/
windir=$(shell cd "${WINDIR}"; pwd)
@@ -124,11 +164,11 @@ wslbridge-backend: wslbridge-source
#uname -m | grep x86_64
mkdir -p bin
# provide dependencies for backend build
PATH="$(windir)/Sysnative:${PATH}" cmd /C wsl.exe -u root -d $(BuildDistr) $(shell env | grep http_proxy=) apk add make g++ linux-headers < /dev/null
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 -d $(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

View File

@@ -58,6 +58,8 @@ FILE22="themes.zoo"
FILE23="sounds.zoo"
FILE24="mintty.ico"
FILE25="mkshortcut.vbs"
FILE26="dequote.bat"
FILE27="cmd2.bat"
[SourceFiles]
SourceFiles0=.
@@ -89,4 +91,6 @@ SourceFiles0=.
%FILE23%=
%FILE24%=
%FILE25%=
%FILE26%=
%FILE27%=

View File

@@ -1,12 +1,14 @@
@echo off
if "%installdir%" == "" set installdir="%LOCALAPPDATA%\wsltty"
call dequote installdir
:shortcuts
rem delete Start Menu Folder
set smf="%APPDATA%\Microsoft\Windows\Start Menu\Programs\WSLtty"
call dequote smf
rmdir /S /Q "%smf%"