1
0
mirror of https://github.com/mintty/wsltty.git synced 2025-11-04 17:11:54 +00:00

Compare commits

...

9 Commits
3.1.4 ... 3.1.8

Author SHA1 Message Date
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 162 additions and 69 deletions

View File

@@ -50,6 +50,9 @@ the optional second parameter designates the configuration directory.
### Installation with other package management environments ### ### Installation with other package management environments ###
Note that these are 3rd-party contributions and do not necessarily
provide the latest version.
#### Chocolatey #### #### Chocolatey ####
If you use the [Chocolatey package manager](https://chocolatey.org/), If you use the [Chocolatey package manager](https://chocolatey.org/),
@@ -90,6 +93,18 @@ is discouraged because that would bypass essential options.
Terminal communication with WSL via its modes V1 or V2 is handled Terminal communication with WSL via its modes V1 or V2 is handled
automatically by wsltty (mintty and the wslbridge2 gateway). 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).
--- ---
### Configuration ### ### Configuration ###
@@ -158,10 +173,11 @@ Mintty can maintain its configuration file in various locations,
with the following precedence: with the following precedence:
* file given with mintty option `-c` (not used by wsltty default installation) * file given with mintty option `-c` (not used by wsltty default installation)
* file `config` in directory given with mintty option `--configdir` * 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%\.minttyrc` (usage deprecated with wsltty)
* `%HOME%\.config\mintty\config` (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) * `%LOCALAPPDATA%\wsltty\etc\minttyrc` (usage deprecated with wsltty)
Note: Note:

View File

@@ -1 +1 @@
3.1.4 3.1.4.2

1
cmd2.bat Executable file
View File

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

View File

@@ -1,12 +1,42 @@
#! /bin/sh #! /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 case "$installdir" in
?*) custominst=true;; ?*) custominst=true;;
"") custominst=false;; "") custominst=false;;
esac esac
INSTDIR="${installdir:-$LOCALAPPDATA/wsltty}" INSTDIR="${installdir:-$LOCALAPPDATA/wsltty}"
echoc "Installing wsltty into $INSTDIR"
INSTDIR=`cd "$INSTDIR"; pwd` INSTDIR=`cd "$INSTDIR"; pwd`
installcop=${installdir:-"$LOCALAPPDATA\\wsltty"}
installdir=${installdir:-'%LOCALAPPDATA%\wsltty'} installdir=${installdir:-'%LOCALAPPDATA%\wsltty'}
target="$installdir"'\bin\mintty.exe' target="$installdir"'\bin\mintty.exe'
@@ -39,6 +69,9 @@ case "$1" in
-shortcuts-remove) -shortcuts-remove)
remove=true remove=true
shift;; shift;;
-default)
alldistros=false
shift;;
-contextmenu) -contextmenu)
contextmenu=true contextmenu=true
shift;; shift;;
@@ -76,20 +109,21 @@ case "$1" in
shift;; shift;;
esac esac
if $config && ! $contextmenu if $config && ! $contextmenu
then then
# remove shortcut entries in Start menu and cmd-line bat shortcuts # remove shortcut entries in Start menu and cmd-line bat shortcuts
(cd "$INSTDIR" (cd "$INSTDIR"
for lnk in *.lnk for lnk in *.lnk
do do
if cmd /C comp/M "$lnk" "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\$lnk" if compare "$lnk" "$APPDATA\\Microsoft\\Windows\\Start Menu\\Programs\\$lnk"
then cmd /C del "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\$lnk" then delete "$APPDATA\\Microsoft\\Windows\\Start Menu\\Programs\\$lnk"
fi fi
done done
for bat in *.bat for bat in *.bat
do do
if cmd /C comp/M "$bat" "%LOCALAPPDATA%\\Microsoft\\WindowsApps\\$bat" if compare "$bat" "$LOCALAPPDATA\\Microsoft\\WindowsApps\\$bat"
then cmd /C del "%LOCALAPPDATA%\\Microsoft\\WindowsApps\\$bat" then delete "$LOCALAPPDATA\\Microsoft\\WindowsApps\\$bat"
fi fi
done done
) )
@@ -121,10 +155,6 @@ regtool () {
} }
fi fi
# dash built-in echo enforces interpretation of \t etc
echoc () {
cmd /c echo $*
}
if $config if $config
then while read line; do echo "$line"; done <</EOB > mkbat.bat then while read line; do echo "$line"; done <</EOB > mkbat.bat
@@ -158,10 +188,10 @@ then
bridgeargs=-contextmenu-remove bridgeargs=-contextmenu-remove
cscript /nologo mkshortcut.vbs "/name:remove from context menu" "/min:true" 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" 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" 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" 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 "configure WSL shortcuts.lnk" "$APPDATA\\Microsoft\\Windows\\Start Menu\\Programs\\WSLtty"
# restore target # restore target
target="$installdir"'\bin\mintty.exe' target="$installdir"'\bin\mintty.exe'
@@ -212,21 +242,25 @@ config () {
psh_cmd='([xml]$(Get-Content '"\"$manifest\""')).Package.Applications.Application.Executable' psh_cmd='([xml]$(Get-Content '"\"$manifest\""')).Package.Applications.Application.Executable'
executable=`appex "$manifest"` executable=`appex "$manifest"`
if [ -r "$ProgramW6432/WindowsApps/$distrinst/$executable" ] if [ -r "$ProgramW6432/WindowsApps/$distrinst/$executable" ]
then #icon="%ProgramW6432%/WindowsApps/$distrinst/$executable" then icon="$ProgramW6432/WindowsApps/$distrinst/$executable"
icon="$ProgramW6432/WindowsApps/$distrinst/$executable"
elif [ -r "$ProgramW6432/WindowsApps/$distrinst/images/icon.ico" ] elif [ -r "$ProgramW6432/WindowsApps/$distrinst/images/icon.ico" ]
then #icon="%ProgramW6432%/WindowsApps/$distrinst/images/icon.ico" then icon="$ProgramW6432/WindowsApps/$distrinst/images/icon.ico"
icon="$ProgramW6432/WindowsApps/$distrinst/images/icon.ico" else icon="$installcop"'\wsl.ico'
else icon="$installdir"'\wsl.ico'
fi fi
root="$basepath/rootfs" root="$basepath/rootfs"
elif [ -f "$basepath/$distro.exe" ] elif [ -f "$basepath/$distro.exe" ]
then then
icon="$basepath/$distro.exe" icon="$basepath/$distro.exe"
root="$basepath/rootfs" root="$basepath/rootfs"
else elif [ -d "$LOCALAPPDATA/lxss" ]
icon="%LOCALAPPDATA%/lxss/bash.ico" then
# legacy "Bash on Windows"
icon="$LOCALAPPDATA/lxss/bash.ico"
root="$basepath" root="$basepath"
else
# imported distro? (#226, #236)
icon="$installcop"'\wsl.ico'
root="$basepath/rootfs"
fi fi
# invocation parameters for mintty # invocation parameters for mintty
@@ -240,7 +274,7 @@ config () {
DefaultDistribution|"") # WSL default installation DefaultDistribution|"") # WSL default installation
distro= distro=
name=WSL name=WSL
icon="$installdir"'\wsl.ico' icon="$installcop"'\wsl.ico'
minttyargs='--WSL= --configdir="'"$configdir"'"' minttyargs='--WSL= --configdir="'"$configdir"'"'
MINTARGS='--WSL= --configdir="'"$CONFDIR"'"' MINTARGS='--WSL= --configdir="'"$CONFDIR"'"'
#bridgeargs='-t' #bridgeargs='-t'
@@ -280,43 +314,57 @@ config () {
reg delete "$direckey\\shell\\$keyname" /f reg delete "$direckey\\shell\\$keyname" /f
reg delete "$direckey\\Background\\shell\\$keyname" /f reg delete "$direckey\\Background\\shell\\$keyname" /f
else else
reg add "$direckey\\shell\\$keyname" /d "$name Terminal" /f direckey='/HKEY_CURRENT_USER/Software/Classes/Directory'
reg add "$direckey\\shell\\$keyname" /v Icon /d "$icon" /f echoc Registry setting "$direckey/[Background/]shell/$keyname"
cmd /C reg add "$direckey\\shell\\$keyname\\command" /d "\"$target\" -i \"$icon\" --dir \"%1\" $minttyargs $bridgeargs" /f target="$installcop"'\bin\mintty.exe'
reg add "$direckey\\Background\\shell\\$keyname" /d "$name Terminal" /f
reg add "$direckey\\Background\\shell\\$keyname" /v Icon /d "$icon" /f regtool add "$direckey/shell"
cmd /C reg add "$direckey\\Background\\shell\\$keyname\\command" /d "\"$target\" -i \"$icon\" $minttyargs $bridgeargs" /f 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 fi
else else
# invocation shortcuts and scripts # invocation shortcuts and scripts
if $remove if $remove
then then
cmd /C del "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\$name Terminal.lnk" delete "$APPDATA\\Microsoft\\Windows\\Start Menu\\Programs\\$name Terminal.lnk"
cmd /C del "%LOCALAPPDATA%\\Microsoft\\WindowsApps\\$name.bat" delete "$LOCALAPPDATA\\Microsoft\\WindowsApps\\$name.bat"
cmd /C del "%LOCALAPPDATA%\\Microsoft\\WindowsApps\\$name~.bat" delete "$LOCALAPPDATA\\Microsoft\\WindowsApps\\$name~.bat"
if [ "$name" = "WSL" ] if [ "$name" = "WSL" ]
then then
# determine actual Desktop folder # determine actual Desktop folder
desktopkey='\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Desktop' desktopkey='\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Desktop'
desktop=`regtool get "$desktopkey"` 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 fi
else else
# desktop shortcut in %USERPROFILE% -> Start Menu - WSLtty # desktop shortcut in %USERPROFILE% -> Start Menu - WSLtty
cscript /nologo mkshortcut.vbs "/name:$name Terminal %" cscript /nologo mkshortcut.vbs "/name:$name Terminal %"
#mkshortcut.exe -n "$name Terminal %" -i "$icon" "$TARGETPATH" -a "$MINTARGS" -d "" -w %USERPROFILE% #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 # launch script in . -> WSLtty home, WindowsApps launch folder
cmd /C mkbat.bat "$name" 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 # store backup copies in installation dir
if [ "$PWD" != "$INSTDIR" ] if [ "$PWD" != "$INSTDIR" ]
then then
cmd /C copy "$name Terminal %.lnk" "$installdir" copy "$name Terminal %.lnk" "$installcop"
cmd /C copy "$name.bat" "$installdir" copy "$name.bat" "$installcop"
fi fi
# prepare versions to target WSL home directory # prepare versions to target WSL home directory
@@ -327,29 +375,32 @@ config () {
# desktop shortcut in ~ -> Start Menu # desktop shortcut in ~ -> Start Menu
cscript /nologo mkshortcut.vbs "/name:$name Terminal" cscript /nologo mkshortcut.vbs "/name:$name Terminal"
#mkshortcut.exe -n "$name Terminal" -i "$icon" "$TARGETPATH" -a "$MINTARGS" -d "" -w %USERPROFILE% #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 # default desktop shortcut in ~ -> Desktop
if [ "$name" = "WSL" ] if [ "$name" = "WSL" ]
then then
#cmd /C copy "$name Terminal.lnk" "%USERPROFILE%\\Desktop" #copy "$name Terminal.lnk" "$USERPROFILE\\Desktop"
#cmd /C copy "$name Terminal.lnk" "%APPDATA%\\..\\Desktop\\" #copy "$name Terminal.lnk" "$APPDATA\\..\\Desktop\\"
# the above does not work reliably (see #166) # the above does not work reliably (see #166)
# determine actual Desktop folder # determine actual Desktop folder
desktopkey='\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Desktop' desktopkey='\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Desktop'
desktop=`regtool get "$desktopkey"` 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 fi
# launch script in ~ -> WSLtty home, WindowsApps launch folder # launch script in ~ -> WSLtty home, WindowsApps launch folder
cmd /C mkbat.bat "$name~" 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 # store backup copies in installation dir
if [ "$PWD" != "$INSTDIR" ] if [ "$PWD" != "$INSTDIR" ]
then then
cmd /C copy "$name Terminal.lnk" "$installdir" copy "$name Terminal.lnk" "$installcop"
cmd /C copy "$name~.bat" "$installdir" copy "$name~.bat" "$installcop"
fi fi
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 installdir="%LOCALAPPDATA%\wsltty"
set refconfigdir=%%APPDATA%%\wsltty set refconfigdir=%%APPDATA%%\wsltty
set configdir="%APPDATA%\wsltty" set configdir="%APPDATA%\wsltty"
call dequote installdir
call dequote configdir
set oldroot="%installdir%" set oldroot="%installdir%"
set oldhomedir="%installdir%\home\%USERNAME%" set oldhomedir="%installdir%\home\%USERNAME%"
call dequote oldroot
call dequote oldhomedir
set oldconfigdir="%oldhomedir%\.config\mintty" set oldconfigdir="%oldhomedir%\.config\mintty"
call dequote oldconfigdir
if not "%1" == "" set refinstalldir=%1 && set installdir=%1 if not "%1" == "" set refinstalldir=%1 && set installdir=%1
if not "%2" == "" set refconfigdir=%2 && set configdir=%2 if not "%2" == "" set refconfigdir=%2 && set configdir=%2
:deploy :deploy
mkdir "%installdir%" mkdir "%installdir%" 2> nul:
rem clean up previous installation artefacts rem clean up previous installation artefacts
del /Q "%installdir%\*.bat" del /Q "%installdir%\*.bat"
@@ -31,6 +36,8 @@ rem copy "WSL Terminal %%.lnk" "%installdir%"
copy config-distros.sh "%installdir%" copy config-distros.sh "%installdir%"
copy mkshortcut.vbs "%installdir%" copy mkshortcut.vbs "%installdir%"
copy cmd2.bat "%installdir%"
copy dequote.bat "%installdir%"
rem allow persistent customization of default icon: rem allow persistent customization of default icon:
if not exist "%installdir%\wsl.ico" copy tux.ico "%installdir%\wsl.ico" 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 if not exist "%installdir%\bin" goto instbin
rem move previous programs possibly in use out of the way 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\cygwin1.dll" cygwin1.dll.old
ren "%installdir%\bin\cygwin-console-helper.exe" cygwin-console-helper.exe.old ren "%installdir%\bin\cygwin-console-helper.exe" cygwin-console-helper.exe.old
ren "%installdir%\bin\mintty.exe" mintty.exe.old ren "%installdir%\bin\mintty.exe" mintty.exe.old
ren "%installdir%\bin\wslbridge2.exe" wslbridge2.exe.old ren "%installdir%\bin\wslbridge2.exe" wslbridge2.exe.old
ren "%installdir%\bin\wslbridge2-backend" wslbridge2-backend.old ren "%installdir%\bin\wslbridge2-backend" wslbridge2-backend.old
del /Q "%installdir%\bin\*.old" del /Q "%installdir%\bin\*.old" 2> nul:
:instbin :instbin
mkdir "%installdir%\bin" mkdir "%installdir%\bin" 2> nul:
copy cygwin1.dll "%installdir%\bin" copy cygwin1.dll "%installdir%\bin"
copy cygwin-console-helper.exe "%installdir%\bin" copy cygwin-console-helper.exe "%installdir%\bin"
copy mintty.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 copy cygintl-8.dll "%installdir%"\bin
rem create system config directory and copy config archive 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" 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" 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" 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" 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 tux.ico "%installdir%\usr\share\mintty\icon"
copy mintty.ico "%installdir%\usr\share\mintty\icon" copy mintty.ico "%installdir%\usr\share\mintty\icon"
rem create Start Menu Folder rem create Start Menu Folder
set smf="%APPDATA%\Microsoft\Windows\Start Menu\Programs\WSLtty" set smf="%APPDATA%\Microsoft\Windows\Start Menu\Programs\WSLtty"
mkdir "%smf%" call dequote smf
mkdir "%smf%" 2> nul:
rem clean up previous installation rem clean up previous installation
del /Q "%smf%\*.lnk" 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 copy "WSL Terminal %%.lnk" "%smf%" rem copy "WSL Terminal %%.lnk" "%smf%"
rem clean up previous installation 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 rem unpack config files in system config directory
cd /D "%installdir%\usr\share\mintty\lang" cd /D "%installdir%\usr\share\mintty\lang"
@@ -102,6 +110,7 @@ cd /D "%installdir%\usr\share\mintty\themes"
"%installdir%\bin\zoo" xO themes "%installdir%\bin\zoo" xO themes
cd /D "%installdir%\usr\share\mintty\sounds" cd /D "%installdir%\usr\share\mintty\sounds"
"%installdir%\bin\zoo" xO sounds "%installdir%\bin\zoo" xO sounds
cd /D "%installdir%"
:migrate configuration :migrate configuration
@@ -116,24 +125,28 @@ rmdir "%oldhomedir%\.config"
if exist "%configdir%\config" goto deloldhome if exist "%configdir%\config" goto deloldhome
if exist "%oldhomedir%\.minttyrc" copy "%oldhomedir%\.minttyrc" "%configdir%\config" && del "%oldhomedir%\.minttyrc" if exist "%oldhomedir%\.minttyrc" copy "%oldhomedir%\.minttyrc" "%configdir%\config" && del "%oldhomedir%\.minttyrc"
:deloldhome :deloldhome
rmdir "%oldhomedir%" rmdir "%oldhomedir%" 2> nul:
rmdir "%oldroot%\home" rmdir "%oldroot%\home" 2> nul:
:userconfig :userconfig
rem create user config directory and subfolders rem create user config directory and subfolders
mkdir "%configdir%\lang" mkdir "%configdir%\lang" 2> nul:
mkdir "%configdir%\themes" mkdir "%configdir%\themes" 2> nul:
mkdir "%configdir%\sounds" mkdir "%configdir%\sounds" 2> nul:
rem create config file if it does not yet exist 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" 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 rem distro-specific stuff: shortcuts and launch scripts
cd /D "%installdir%" cd /D "%installdir%"
bin\dash.exe "%installdir%\config-distros.sh" echo Configuring for WSL distributions
rem bin\dash.exe "%installdir%\config-distros.sh" -contextmenu bin\dash.exe "config-distros.sh"
rem rem bin\dash.exe "config-distros.sh" -contextmenu
:end :end

View File

@@ -8,10 +8,11 @@
# wsltty release # wsltty release
ver=3.1.4 ver=3.1.4.2
# wsltty appx release - must have 4 parts! # wsltty appx release - must have 4 parts!
verx=3.1.4.0 verx=3.1.4.2
# mintty release version # mintty release version
minttyver=3.1.4 minttyver=3.1.4
@@ -27,6 +28,11 @@ wslbridgever=0.5
# wslbridge branch or commit to build from source; # wslbridge branch or commit to build from source;
wslbridge=wslbridge-frontend wslbridge-backend 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 # Windows SDK version for appx
WINSDKKEY=/HKEY_LOCAL_MACHINE/SOFTWARE/WOW6432Node/Microsoft/.NET Framework Platform/Setup/Multi-Targeting Pack WINSDKKEY=/HKEY_LOCAL_MACHINE/SOFTWARE/WOW6432Node/Microsoft/.NET Framework Platform/Setup/Multi-Targeting Pack
@@ -114,9 +120,6 @@ wslbridge-frontend: wslbridge-source
# extract binaries # extract binaries
cp wslbridge2-$(wslbridgever)/bin/wslbridge2.exe bin/ cp wslbridge2-$(wslbridgever)/bin/wslbridge2.exe bin/
# build backend on a musl-libc-based distribution
BuildDistr=Alpine
windir=$(shell cd "${WINDIR}"; pwd) windir=$(shell cd "${WINDIR}"; pwd)
wslbridge-backend: wslbridge-source wslbridge-backend: wslbridge-source
@@ -124,9 +127,9 @@ wslbridge-backend: wslbridge-source
#uname -m | grep x86_64 #uname -m | grep x86_64
mkdir -p bin mkdir -p bin
# provide dependencies for backend build # 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 # 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 wslbridge2-$(wslbridgever)/src; PATH="$(windir)/Sysnative:${PATH}" cmd /C wsl.exe $(BuildDistr) make -f Makefile.backend RELEASE=1 < /dev/null
# extract binaries # extract binaries
cp wslbridge2-$(wslbridgever)/bin/wslbridge2-backend bin/ cp wslbridge2-$(wslbridgever)/bin/wslbridge2-backend bin/

View File

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

View File

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