mirror of
https://github.com/mintty/wsltty.git
synced 2025-11-16 14:55:52 +00:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
92a7cceae2 | ||
|
|
1ef83d72e1 | ||
|
|
9be0b3ec10 | ||
|
|
276fb6ae88 | ||
|
|
288c56a3d2 | ||
|
|
082eb760eb | ||
|
|
d5cc2bfe77 | ||
|
|
1e453b05e9 | ||
|
|
ee8d3b0678 | ||
|
|
2f69d2740d |
67
README.md
67
README.md
@@ -10,11 +10,10 @@ WSLtty components
|
||||
* a wsltty configuration directory in the user’s application folder `%APPDATA%`
|
||||
(“home”-located configuration files from a previously installed version
|
||||
will be migrated to the new default location)
|
||||
* Start Menu shortcuts to start a WSL shell (with some variations, see below)
|
||||
* `*.bat` scripts to invoke WSL from the command line (see below)
|
||||
* optional context menu entries for Windows Explorer to start a WSL shell in the respective folder
|
||||
* Start Menu shortcuts to start WSL terminals
|
||||
* `*.bat` scripts to invoke WSL terminals from the command line
|
||||
* optional context menu entries for Windows Explorer to start WSL terminals in the respective folder
|
||||
* install/uninstall context menu items from Start Menu subfolder `WSLtty`
|
||||
* an uninstall script that can be invoked manually to remove shortcuts and context menu entries
|
||||
|
||||
### Installation ###
|
||||
|
||||
@@ -49,10 +48,26 @@ WSLtty can be invoked with
|
||||
* Explorer context menu (if installed from the Start Menu `WSLtty` subfolder)
|
||||
|
||||
Starting the mintty terminal directly from the WSLtty installation location
|
||||
is discouraged because that would bypass some essential options.
|
||||
is discouraged because that would bypass essential options.
|
||||
|
||||
### Configuration ###
|
||||
|
||||
#### Start Menu and Desktop shortcuts ####
|
||||
|
||||
In the Start Menu, the following shortcuts are installed:
|
||||
* For each installed WSL distribution D, D` Terminal` to start in the WSL user home
|
||||
* `WSL Terminal` to start the default WSL distribution (as configured with the Windows tool `wslconfig`)
|
||||
|
||||
In the Start Menu subfolder WSLtty, the following shortcuts are installed:
|
||||
* For each installed WSL distribution D, D` Terminal %` to start in the Windows %USERPROFILE% home
|
||||
* `WSL Terminal %` to start the default WSL distribution in the Windows %USERPROFILE% home
|
||||
|
||||
One Desktop shortcut is installed:
|
||||
* `WSL Terminal` to start the default WSL distribution (as configured with the Windows tool `wslconfig`)
|
||||
|
||||
Other, distribution-specific shortcuts can be copied to the desktop
|
||||
from the Start Menu if desired.
|
||||
|
||||
#### Command line scripts `wsl*.bat` ####
|
||||
|
||||
WSLtty installs the following scripts into `%LOCALAPPDATA%\Microsoft\WindowsApps`
|
||||
@@ -60,37 +75,19 @@ WSLtty installs the following scripts into `%LOCALAPPDATA%\Microsoft\WindowsApps
|
||||
|
||||
* For each installed WSL distribution D, D`.bat` to start in the current folder/directory
|
||||
* For each installed WSL distribution D, D`~.bat` to start in the WSL user home
|
||||
* `wsl.bat` to start the default WSL installation in the current folder/directory
|
||||
* `wsl~.bat` to start the default WSL installation in the WSL user home
|
||||
* `wsl-l.bat` to start the default WSL installation with a login shell
|
||||
* `WSL.bat` and `WSL ~.bat` to start the default WSL distribution
|
||||
|
||||
Given that `%LOCALAPPDATA%\Microsoft\WindowsApps` is in your PATH,
|
||||
the scripts can be invoked from cmd.exe, PowerShell, or via WIN+R.
|
||||
|
||||
#### Start Menu and Desktop shortcuts ####
|
||||
|
||||
In the Start Menu, the following shortcuts are installed:
|
||||
* For each installed WSL distribution D, D` in Mintty` to start in the WSL user home
|
||||
|
||||
In the Start Menu subfolder WSLtty, the following shortcuts are installed:
|
||||
* For each installed WSL distribution D, D` in Mintty` to start in the Windows %USERPROFILE% home
|
||||
* For each installed WSL distribution D, D` ~ in Mintty` to start in the WSL user home
|
||||
* `WSL % in Mintty` to start the default WSL installation in the Windows %USERPROFILE% home
|
||||
* `WSL ~ in Mintty` to start the default WSL installation in the WSL user home
|
||||
* `WSL -l in Mintty` to start the default WSL installation with a login shell
|
||||
|
||||
WSLtty does not install Desktop shortcuts. If you want them, copy the
|
||||
desired ones from the Start Menu subfolder `WSLtty`.
|
||||
|
||||
To ensure a login shell to start in your Linux home directory,
|
||||
add a `cd` command to your `$HOME/.profile` on Linux side.
|
||||
|
||||
#### Context menu entries ####
|
||||
|
||||
WSLtty provides context menu entries for all installed WSL distributions,
|
||||
to start a respective WSL shell in a specific folder from an Explorer window.
|
||||
WSLtty provides context menu entries for all installed WSL distributions
|
||||
and one for the configured default distribution,
|
||||
to start a respective WSL terminal in a specific folder from an Explorer window.
|
||||
They are not installed by default.
|
||||
To add or remove context menu entries, run the respective script from the
|
||||
To add launch entries for the default or all WSL distributions to the
|
||||
Explorer context menu, or remove them, run the respective script from the
|
||||
Start Menu subfolder `WSLtty`.
|
||||
|
||||
#### Mintty settings ####
|
||||
@@ -122,11 +119,13 @@ Note:
|
||||
|
||||
#### Shell selection ####
|
||||
|
||||
To invoke your favourite shell, replace `/bin/bash` with its pathname
|
||||
in the Desktop or Start Menu shortcuts and `*.bat` launch scripts,
|
||||
or Explorer context menu commands.
|
||||
The WSLtty deployment does not impose a shell preference anymore.
|
||||
However, the intermediate gateways (`wslbridge` and its backend and the `bash.exe` Windows launcher)
|
||||
are also involved. To invoke your favourite shell, you may append
|
||||
a shell pathname to the mintty invocation (in shortcuts, scripts, or context menu entries),
|
||||
or handle shell replacement within the WSL startup scripts (esp. `.profile`).
|
||||
|
||||
### Components ###
|
||||
### Components and Credits ###
|
||||
|
||||
For mintty, see the [Mintty homepage](http://mintty.github.io/)
|
||||
(with further screenshots),
|
||||
@@ -138,4 +137,4 @@ It is based on [Cygwin](http://cygwin.com)
|
||||
and includes its runtime library ([sources](http://mirrors.dotsrc.org/cygwin/x86/release/cygwin)).
|
||||
|
||||
For interacting with WSL, it uses [wslbridge](https://github.com/rprichard/wslbridge).
|
||||
|
||||
Many thanks for this enabling gateway go especially to Ryan Prichard.
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
add default to context menu.lnk
Executable file
BIN
add default to context menu.lnk
Executable file
Binary file not shown.
@@ -2,42 +2,77 @@
|
||||
|
||||
contextmenu=false
|
||||
remove=false
|
||||
alldistros=true
|
||||
case "$1" in
|
||||
-contextmenu) contextmenu=true
|
||||
shift;;
|
||||
-contextmenu-remove)
|
||||
contextmenu=true
|
||||
remove=true
|
||||
shift;;
|
||||
-shortcuts-remove)
|
||||
remove=true
|
||||
shift;;
|
||||
remove=true
|
||||
shift;;
|
||||
-contextmenu)
|
||||
contextmenu=true
|
||||
shift;;
|
||||
-contextmenu-default)
|
||||
contextmenu=true
|
||||
alldistros=false
|
||||
shift;;
|
||||
-contextmenu-remove)
|
||||
contextmenu=true
|
||||
remove=true
|
||||
direckey='/HKEY_CURRENT_USER/Software/Classes/Directory'
|
||||
|
||||
regtool list "$direckey/shell" 2>/dev/null |
|
||||
while read name
|
||||
do
|
||||
case `regtool get "$direckey/shell/$name/command/"` in
|
||||
*bin\\mintty.exe*/bin/wslbridge*|*bin\\mintty.exe*--WSL*)
|
||||
regtool remove "$direckey/shell/$name/command"
|
||||
regtool remove "$direckey/shell/$name"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
regtool list "$direckey/Background/shell" 2>/dev/null |
|
||||
while read name
|
||||
do
|
||||
case `regtool get "$direckey/Background/shell/$name/command/"` in
|
||||
*bin\\mintty.exe*/bin/wslbridge*|*bin\\mintty.exe*--WSL*)
|
||||
regtool remove "$direckey/Background/shell/$name/command"
|
||||
regtool remove "$direckey/Background/shell/$name"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
exit
|
||||
shift;;
|
||||
esac
|
||||
|
||||
# test w/o WSL: call this script with REGTOOLFAKE=true dash config-distros.sh
|
||||
if ${REGTOOLFAKE:-false}
|
||||
then
|
||||
regtool () {
|
||||
case "$1" in
|
||||
-*) shift;;
|
||||
esac
|
||||
key=`echo $2 | sed -e 's,.*{\(.*\)}.*,\1,' -e t -e d`
|
||||
case "$1.$2" in
|
||||
list.*) if $contextmenu
|
||||
then echo "{0}"
|
||||
else echo "{1}"; echo "{2}"
|
||||
fi;;
|
||||
get.*/DistributionName) echo "distro$key";;
|
||||
get.*/BasePath) echo "C:\\Program\\{$key}\\State";;
|
||||
get.*/PackageFamilyName) echo "distro{$key}";;
|
||||
get.*/PackageFullName) echo "C:\\Program\\{$key}";;
|
||||
esac
|
||||
case "$1" in
|
||||
-*) shift;;
|
||||
esac
|
||||
key=`echo $2 | sed -e 's,.*{\(.*\)}.*,\1,' -e t -e d`
|
||||
case "$1.$2" in
|
||||
list.*)
|
||||
if $contextmenu
|
||||
then echo "{0}"
|
||||
else echo "{1}"; echo "{2}"
|
||||
fi;;
|
||||
get.*/DistributionName)
|
||||
echo "distro$key";;
|
||||
get.*/BasePath)
|
||||
echo "C:\\Program\\{$key}\\State";;
|
||||
get.*/PackageFamilyName)
|
||||
echo "distro{$key}";;
|
||||
get.*/PackageFullName)
|
||||
echo "C:\\Program\\{$key}";;
|
||||
esac
|
||||
}
|
||||
fi
|
||||
|
||||
# dash built-in echo enforces interpretation of \t etc
|
||||
echoc () {
|
||||
cmd /c echo $*
|
||||
cmd /c echo $*
|
||||
}
|
||||
|
||||
while read line; do echo "$line"; done <</EOB > mkbat.bat
|
||||
@@ -45,10 +80,8 @@ while read line; do echo "$line"; done <</EOB > mkbat.bat
|
||||
echo Creating %1.bat
|
||||
|
||||
echo @echo off> %1.bat
|
||||
echo rem Start mintty terminal for WSL package %distro% in current directory>> %1.bat
|
||||
echo rem Start mintty terminal for WSL package %name% in current directory>> %1.bat
|
||||
echo %target% -i "%icon%" %minttyargs% %bridgeargs%>> %1.bat
|
||||
|
||||
echo Created %1.bat
|
||||
/EOB
|
||||
|
||||
PATH=/bin:$PATH
|
||||
@@ -56,104 +89,128 @@ PATH=/bin:$PATH
|
||||
lxss="/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss"
|
||||
schema="/HKEY_CURRENT_USER/Software/Classes/Local Settings/Software/Microsoft/Windows/CurrentVersion/AppModel/SystemAppData"
|
||||
|
||||
(regtool list "$lxss" 2>/dev/null || echo "No WSL packages registered" >&2) |
|
||||
#(regtool list "$lxss" 2>/dev/null && echo || echo "No WSL packages registered" >&2) |
|
||||
(
|
||||
if $alldistros
|
||||
then regtool list "$lxss" 2>/dev/null
|
||||
else true
|
||||
fi && echo || echo "No WSL packages registered" >&2) |
|
||||
while read guid
|
||||
do
|
||||
ok=false
|
||||
case $guid in
|
||||
{*)
|
||||
distro=`regtool get "$lxss/$guid/DistributionName"`
|
||||
case "$distro" in
|
||||
Legacy) name="Bash on Windows"
|
||||
launch=
|
||||
launcher="$SYSTEMROOT/System32/bash.exe"
|
||||
;;
|
||||
*) name="$distro"
|
||||
launch="$distro"
|
||||
launcher="$LOCALAPPDATA/Microsoft/WindowsApps/$distro.exe"
|
||||
;;
|
||||
esac
|
||||
basepath=`regtool get "$lxss/$guid/BasePath"`
|
||||
if package=`regtool -q get "$lxss/$guid/PackageFamilyName"`
|
||||
then instdir=`regtool get "$schema/$package/Schemas/PackageFullName"`
|
||||
if [ -r "$PROGRAMFILES/WindowsApps/$instdir/images/icon.ico" ]
|
||||
then icon="%PROGRAMFILES%/WindowsApps/$instdir/images/icon.ico"
|
||||
else icon="%LOCALAPPDATA%/wsltty/wsl.ico"
|
||||
fi
|
||||
root="$basepath/rootfs"
|
||||
else icon="%LOCALAPPDATA%/lxss/bash.ico"
|
||||
root="$basepath"
|
||||
fi
|
||||
echoc "distro $distro"
|
||||
echoc "- guid $guid"
|
||||
echoc "- (launcher $launcher)"
|
||||
echoc "- icon $icon"
|
||||
echoc "- root $root"
|
||||
distro=`regtool get "$lxss/$guid/DistributionName"`
|
||||
case "$distro" in
|
||||
Legacy)
|
||||
name="Bash on Windows"
|
||||
launch=
|
||||
launcher="$SYSTEMROOT/System32/bash.exe"
|
||||
;;
|
||||
*) name="$distro"
|
||||
launch="$distro"
|
||||
launcher="$LOCALAPPDATA/Microsoft/WindowsApps/$distro.exe"
|
||||
;;
|
||||
esac
|
||||
basepath=`regtool get "$lxss/$guid/BasePath"`
|
||||
if package=`regtool -q get "$lxss/$guid/PackageFamilyName"`
|
||||
then
|
||||
instdir=`regtool get "$schema/$package/Schemas/PackageFullName"`
|
||||
if [ -r "$ProgramW6432/WindowsApps/$instdir/images/icon.ico" ]
|
||||
then icon="%PROGRAMFILES%/WindowsApps/$instdir/images/icon.ico"
|
||||
else icon="%LOCALAPPDATA%/wsltty/wsl.ico"
|
||||
fi
|
||||
root="$basepath/rootfs"
|
||||
else
|
||||
icon="%LOCALAPPDATA%/lxss/bash.ico"
|
||||
root="$basepath"
|
||||
fi
|
||||
|
||||
target='%LOCALAPPDATA%\wsltty\bin\mintty.exe'
|
||||
minttyargs='--wsl --rootfs="'"$root"'" -h err --configdir="%APPDATA%\wsltty" -o Locale=C -o Charset=UTF-8 /bin/wslbridge '
|
||||
#if [ -z "$launch" ]
|
||||
#then bridgeargs='-t /bin/bash'
|
||||
#else bridgeargs='-l "'"$launch"'" -t /bin/bash'
|
||||
#fi
|
||||
bridgeargs='--distro-guid "'"$guid"'" -t /bin/bash'
|
||||
minttyargs='--wsl --rootfs="'"$root"'" -h err --configdir="%APPDATA%\wsltty" -o Locale=C -o Charset=UTF-8 /bin/wslbridge '
|
||||
minttyargs='--WSL="'"$distro"'" -h err --configdir="%APPDATA%\wsltty"'
|
||||
#if [ -z "$launch" ]
|
||||
#then bridgeargs='-t /bin/bash'
|
||||
#else bridgeargs='-l "'"$launch"'" -t /bin/bash'
|
||||
#fi
|
||||
bridgeargs='--distro-guid "'"$guid"'" -t /bin/bash'
|
||||
bridgeargs='--distro-guid "'"$guid"'" -t'
|
||||
|
||||
export target minttyargs bridgeargs icon
|
||||
export distro
|
||||
ok=true;;
|
||||
"") # WSL default installation
|
||||
distro=
|
||||
name=WSL
|
||||
icon="%LOCALAPPDATA%/wsltty/wsl.ico"
|
||||
minttyargs='--WSL= -h err --configdir="%APPDATA%\wsltty"'
|
||||
bridgeargs='-t'
|
||||
|
||||
ok=true;;
|
||||
esac
|
||||
echoc "distro '$distro'"
|
||||
echoc "- name '$name'"
|
||||
echoc "- guid $guid"
|
||||
echoc "- (launcher $launcher)"
|
||||
echoc "- icon $icon"
|
||||
echoc "- root $root"
|
||||
target='%LOCALAPPDATA%\wsltty\bin\mintty.exe'
|
||||
bridgeargs=" "
|
||||
|
||||
if $ok
|
||||
then
|
||||
export target minttyargs bridgeargs icon
|
||||
|
||||
if $contextmenu
|
||||
then
|
||||
# create context menu entry
|
||||
# context menu entries
|
||||
#cmd /C mkcontext "$name"
|
||||
direckey='HKEY_CURRENT_USER\Software\Classes\Directory'
|
||||
if $remove
|
||||
then
|
||||
reg delete "$direckey\\shell\\$name" /f
|
||||
reg delete "$direckey\\Background\\shell\\$name" /f
|
||||
reg delete "$direckey\\shell\\$name" /f
|
||||
reg delete "$direckey\\Background\\shell\\$name" /f
|
||||
else
|
||||
reg add "$direckey\\shell\\$name" /d "$name in Mintty Here" /f
|
||||
reg add "$direckey\\shell\\$name" /v Icon /d "$icon" /f
|
||||
cmd /C reg add "$direckey\\shell\\$name\\command" /d "\"$target\" -i \"$icon\" --dir \"%1\" $minttyargs $brigdeargs" /f
|
||||
reg add "$direckey\\Background\\shell\\$name" /d "$name in Mintty Here" /f
|
||||
reg add "$direckey\\Background\\shell\\$name" /v Icon /d "$icon" /f
|
||||
cmd /C reg add "$direckey\\Background\\shell\\$name\\command" /d "\"$target\" -i \"$icon\" $minttyargs $brigdeargs" /f
|
||||
reg add "$direckey\\shell\\$name" /d "$name Terminal" /f
|
||||
reg add "$direckey\\shell\\$name" /v Icon /d "$icon" /f
|
||||
cmd /C reg add "$direckey\\shell\\$name\\command" /d "\"$target\" -i \"$icon\" --dir \"%1\" $minttyargs $bridgeargs" /f
|
||||
reg add "$direckey\\Background\\shell\\$name" /d "$name Terminal" /f
|
||||
reg add "$direckey\\Background\\shell\\$name" /v Icon /d "$icon" /f
|
||||
cmd /C reg add "$direckey\\Background\\shell\\$name\\command" /d "\"$target\" -i \"$icon\" $minttyargs $bridgeargs" /f
|
||||
fi
|
||||
else
|
||||
|
||||
# invocation shortcuts and scripts
|
||||
if $remove
|
||||
then
|
||||
cmd /C del "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\$name ~ in Mintty.lnk"
|
||||
cmd /C del "%LOCALAPPDATA%\\Microsoft\\WindowsApps\\$name.bat"
|
||||
cmd /C del "%LOCALAPPDATA%\\Microsoft\\WindowsApps\\$name~.bat"
|
||||
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"
|
||||
else
|
||||
# create desktop/start menu shortcut
|
||||
cscript /nologo mkshortcut.vbs "/name:$name in Mintty"
|
||||
# copy to Start Menu WSLtty subfolder
|
||||
rem cmd /C mkdir "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\WSLtty\\WinUser"
|
||||
cmd /C copy "$name in Mintty.lnk" "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\WSLtty"
|
||||
# desktop shortcut in %USERPROFILE% -> Start Menu - WSLtty
|
||||
cscript /nologo mkshortcut.vbs "/name:$name Terminal %"
|
||||
cmd /C copy "$name Terminal %.lnk" "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\WSLtty"
|
||||
|
||||
# create command-line launch script
|
||||
cmd /C mkbat.bat "$name"
|
||||
#cmd /C mkbat.bat "$name in Mintty"
|
||||
# copy to WSLtty home and to WindowsApps launch folder
|
||||
cmd /C copy "$name.bat" "%LOCALAPPDATA%\\wsltty\\$name.bat"
|
||||
cmd /C copy "$name.bat" "%LOCALAPPDATA%\\Microsoft\\WindowsApps\\$name.bat"
|
||||
# launch script in . -> WSLtty home, WindowsApps launch folder
|
||||
cmd /C mkbat.bat "$name"
|
||||
cmd /C copy "$name.bat" "%LOCALAPPDATA%\\wsltty\\$name.bat"
|
||||
cmd /C copy "$name.bat" "%LOCALAPPDATA%\\Microsoft\\WindowsApps\\$name.bat"
|
||||
|
||||
# prepare versions to target WSL home directory
|
||||
bridgeargs="-C~ $bridgeargs"
|
||||
# prepare versions to target WSL home directory
|
||||
#bridgeargs="-C~ $bridgeargs"
|
||||
minttyargs="$minttyargs -~"
|
||||
|
||||
# create optional addition desktop shortcut
|
||||
cscript /nologo mkshortcut.vbs "/name:$name ~ in Mintty"
|
||||
# copy to Start Menu
|
||||
cmd /C copy "$name ~ in Mintty.lnk" "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs"
|
||||
# desktop shortcut in ~ -> Start Menu
|
||||
cscript /nologo mkshortcut.vbs "/name:$name Terminal"
|
||||
cmd /C copy "$name Terminal.lnk" "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs"
|
||||
|
||||
# create command-line launch script
|
||||
cmd /C mkbat.bat "$name~"
|
||||
#cmd /C mkbat.bat "$name~ in Mintty"
|
||||
# copy to WSLtty home and to WindowsApps launch folder
|
||||
cmd /C copy "$name~.bat" "%LOCALAPPDATA%\\wsltty\\$name~.bat"
|
||||
cmd /C copy "$name~.bat" "%LOCALAPPDATA%\\Microsoft\\WindowsApps\\$name~.bat"
|
||||
# default desktop shortcut in ~ -> Desktop
|
||||
if [ "$name" = "WSL" ]
|
||||
then cmd /C copy "$name Terminal.lnk" "%USERPROFILE%\\Desktop"
|
||||
fi
|
||||
|
||||
# launch script in ~ -> WSLtty home, WindowsApps launch folder
|
||||
cmd /C mkbat.bat "$name~"
|
||||
cmd /C copy "$name~.bat" "%LOCALAPPDATA%\\wsltty\\$name~.bat"
|
||||
cmd /C copy "$name~.bat" "%LOCALAPPDATA%\\Microsoft\\WindowsApps\\$name~.bat"
|
||||
fi
|
||||
|
||||
fi;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
70
install.bat
70
install.bat
@@ -14,31 +14,21 @@ if not "%2" == "" set refconfigdir=%2 && set configdir=%2
|
||||
:deploy
|
||||
|
||||
mkdir "%installdir%"
|
||||
|
||||
rem clean up previous installation artefacts
|
||||
del /Q "%installdir%\*.bat"
|
||||
del /Q "%installdir%\*.lnk"
|
||||
|
||||
copy LICENSE.mintty "%installdir%"
|
||||
copy LICENSE.wslbridge "%installdir%"
|
||||
|
||||
echo @echo off> setdirs.bat
|
||||
echo set refinstalldir=%refinstalldir%>> setdirs.bat
|
||||
echo set installdir=%installdir%>> setdirs.bat
|
||||
echo set refconfigdir=%refconfigdir%>> setdirs.bat
|
||||
echo set configdir=%configdir%>> setdirs.bat
|
||||
copy setdirs.bat + uninstall.bat "%installdir%\uninstall.bat"
|
||||
|
||||
copy setdirs.bat + wsl.bat "%installdir%\wsl.bat"
|
||||
copy setdirs.bat + wsl.bat "%LOCALAPPDATA%\Microsoft\WindowsApps\wsl.bat"
|
||||
copy setdirs.bat + wsl~.bat "%installdir%\wsl~.bat"
|
||||
copy setdirs.bat + wsl~.bat "%LOCALAPPDATA%\Microsoft\WindowsApps\wsl~.bat"
|
||||
copy setdirs.bat + wsl-l.bat "%installdir%\wsl-l.bat"
|
||||
copy setdirs.bat + wsl-l.bat "%LOCALAPPDATA%\Microsoft\WindowsApps\wsl-l.bat"
|
||||
|
||||
copy "add to context menu.lnk" "%installdir%"
|
||||
copy "add default to context menu.lnk" "%installdir%"
|
||||
copy "remove from context menu.lnk" "%installdir%"
|
||||
copy "configure WSL shortcuts.lnk" "%installdir%"
|
||||
copy wsl.ico "%installdir%"
|
||||
copy config-distros.sh "%installdir%"
|
||||
copy mkshortcut.vbs "%installdir%"
|
||||
rem clean up previous installation
|
||||
del "%installdir%\config-context-menu.bat"
|
||||
|
||||
mkdir "%installdir%\bin"
|
||||
copy cygwin1.dll "%installdir%\bin"
|
||||
@@ -55,57 +45,21 @@ mkdir "%installdir%\usr\share\mintty\lang"
|
||||
copy po.zoo "%installdir%\usr\share\mintty\lang"
|
||||
|
||||
|
||||
:shortcuts
|
||||
|
||||
rem generate shortcuts
|
||||
|
||||
rem set icon=%%LOCALAPPDATA%%\lxss\bash.ico
|
||||
set lxicon=%%LOCALAPPDATA%%\lxss\bash.ico
|
||||
set icon=%%LOCALAPPDATA%%\wsltty\wsl.ico
|
||||
if exist "%installdir%\wsl.ico" goto iconok
|
||||
if exist "%lxicon" copy "%lxicon" "%installdir%\wsl.ico"
|
||||
:iconok
|
||||
|
||||
set target=%refinstalldir%\bin\mintty.exe
|
||||
set minttyargs=--wsl -h err --configdir="%refconfigdir%" -o Locale=C -o Charset=UTF-8 /bin/wslbridge
|
||||
set bridgeargs=-t /bin/bash
|
||||
cscript mkshortcut.vbs "/name:WSL %% in Mintty"
|
||||
set bridgeargs=-C~ -t /bin/bash
|
||||
cscript mkshortcut.vbs "/name:WSL ~ in Mintty"
|
||||
set bridgeargs=-t /bin/bash -l
|
||||
cscript mkshortcut.vbs "/name:WSL -l in Mintty"
|
||||
|
||||
rem create Start Menu Folder
|
||||
set smf=%APPDATA%\Microsoft\Windows\Start Menu\Programs\WSLtty
|
||||
mkdir "%smf%"
|
||||
|
||||
rem clean up previous installation
|
||||
del /Q "%smf%\*.lnk"
|
||||
|
||||
copy "wsltty home & help.url" "%smf%"
|
||||
copy "add to context menu.lnk" "%smf%"
|
||||
copy "add default to context menu.lnk" "%smf%"
|
||||
copy "remove from context menu.lnk" "%smf%"
|
||||
copy "configure WSL shortcuts.lnk" "%smf%"
|
||||
rem clean up previous installation
|
||||
rmdir /S /Q "%smf%\context menu shortcuts"
|
||||
|
||||
rem create launch shortcuts for default WSL distro
|
||||
copy "WSL %% in Mintty.lnk" "%installdir%"
|
||||
copy "WSL %% in Mintty.lnk" "%smf%"
|
||||
copy "WSL ~ in Mintty.lnk" "%installdir%"
|
||||
copy "WSL ~ in Mintty.lnk" "%smf%"
|
||||
copy "WSL -l in Mintty.lnk" "%installdir%"
|
||||
copy "WSL -l in Mintty.lnk" "%smf%"
|
||||
rem clean up previous installation
|
||||
del "%smf%\WSL Bash %% in Mintty.lnk"
|
||||
del "%smf%\WSL Bash ~ in Mintty.lnk"
|
||||
del "%smf%\WSL Bash -l in Mintty.lnk"
|
||||
|
||||
goto sysconfig
|
||||
|
||||
rem create Desktop Shorcuts
|
||||
copy "WSL %% in Mintty.lnk" "%USERPROFILE%\Desktop"
|
||||
copy "WSL ~ in Mintty.lnk" "%USERPROFILE%\Desktop"
|
||||
|
||||
|
||||
:sysconfig
|
||||
|
||||
rem unpack config files in system config directory
|
||||
cd /D "%installdir%\usr\share\mintty\lang"
|
||||
"%installdir%\bin\zoo" xO po
|
||||
@@ -140,7 +94,7 @@ if not exist "%configdir%\config" echo # To use common configuration in %%APPDAT
|
||||
rem distro-specific stuff: shortcuts and launch scripts
|
||||
cd "%installdir%"
|
||||
bin\dash.exe "%installdir%\config-distros.sh"
|
||||
bin\dash.exe "%installdir%\config-distros.sh" -contextmenu
|
||||
rem bin\dash.exe "%installdir%\config-distros.sh" -contextmenu
|
||||
|
||||
|
||||
:end
|
||||
|
||||
23
makefile
23
makefile
@@ -9,25 +9,27 @@
|
||||
all: check pkg
|
||||
|
||||
# wsltty release
|
||||
ver=1.7.9
|
||||
ver=1.8.1
|
||||
|
||||
# mintty release version
|
||||
minttyver=2.7.9
|
||||
minttyver=2.8.1
|
||||
#minttyver=master
|
||||
|
||||
# wslbridge backend version
|
||||
wslbridgever=0.2.3
|
||||
wslbridgever=0.2.4
|
||||
|
||||
# wslbridge frontend version
|
||||
# release 0.2.0 does not have cygwin_internal(CW_SYNC_WINENV) yet;
|
||||
# therefore using "master" below
|
||||
#wslbridge-frontend=wslbridge-frontend
|
||||
# release 0.2.1 is updated and complete, no separate frontend build needed:
|
||||
#wslbridge-frontend=
|
||||
#wslbridge-commit=master
|
||||
# use --distro-guid option:
|
||||
wslbridge-frontend=wslbridge-frontend
|
||||
wslbridge-commit=cb22e3f6f989cefe5b6599d3c04422ded74db664
|
||||
wslbridge-frontend=
|
||||
# only used if wslbridge-frontend non-empty:
|
||||
wslbridge-commit=master
|
||||
|
||||
# use --distro-guid option (merged into 0.2.4):
|
||||
#wslbridge-frontend=wslbridge-frontend
|
||||
#wslbridge-commit=cb22e3f6f989cefe5b6599d3c04422ded74db664
|
||||
|
||||
#############################################################################
|
||||
# target checking and some defs
|
||||
@@ -91,8 +93,11 @@ mintty-get:
|
||||
$(wgeto) https://github.com/mintty/mintty/archive/$(minttyver).zip -o mintty-$(minttyver).zip
|
||||
unzip -o mintty-$(minttyver).zip
|
||||
|
||||
wslbuild=LDFLAGS="-static -static-libgcc -s"
|
||||
wslversion=VERSION_SUFFIX="– wsltty $(ver)" WSLTTY_VERSION="$(ver)"
|
||||
|
||||
mintty-build:
|
||||
cd mintty-$(minttyver)/src; make LDFLAGS="-static -static-libgcc -s" VERSION_SUFFIX="– wsltty $(ver)"
|
||||
cd mintty-$(minttyver)/src; make $(wslbuild) $(wslversion)
|
||||
mkdir -p bin
|
||||
cp mintty-$(minttyver)/bin/mintty.exe bin/
|
||||
cp mintty-$(minttyver)/LICENSE LICENSE.mintty
|
||||
|
||||
32
makewinx.cfg
32
makewinx.cfg
@@ -39,26 +39,21 @@ FILE3="wslbridge.exe"
|
||||
FILE4="wslbridge-backend"
|
||||
FILE5="LICENSE.mintty"
|
||||
FILE6="LICENSE.wslbridge"
|
||||
FILE7="WSL % in Mintty.lnk"
|
||||
FILE8="WSL ~ in Mintty.lnk"
|
||||
FILE9="WSL -l in Mintty.lnk"
|
||||
FILE10="wsl.bat"
|
||||
FILE11="wsl~.bat"
|
||||
FILE12="wsl-l.bat"
|
||||
FILE7="config-distros.sh"
|
||||
FILE8="configure WSL shortcuts.lnk"
|
||||
FILE9="mkshortcut.vbs"
|
||||
FILE10="VERSION"
|
||||
FILE11="dash.exe"
|
||||
FILE12="regtool.exe"
|
||||
FILE13="install.bat"
|
||||
FILE14="uninstall.bat"
|
||||
FILE15="wsl.ico"
|
||||
FILE16="add to context menu.lnk"
|
||||
FILE17="remove from context menu.lnk"
|
||||
FILE18="wsltty home & help.url"
|
||||
FILE19="zoo.exe"
|
||||
FILE20="po.zoo"
|
||||
FILE21="dash.exe"
|
||||
FILE22="regtool.exe"
|
||||
FILE23="config-distros.sh"
|
||||
FILE24="configure WSL shortcuts.lnk"
|
||||
FILE25="mkshortcut.vbs"
|
||||
FILE26="VERSION"
|
||||
FILE17="add default to context menu.lnk"
|
||||
FILE18="remove from context menu.lnk"
|
||||
FILE19="wsltty home & help.url"
|
||||
FILE20="zoo.exe"
|
||||
FILE21="po.zoo"
|
||||
|
||||
[SourceFiles]
|
||||
SourceFiles0=.
|
||||
@@ -86,9 +81,4 @@ SourceFiles0=.
|
||||
%FILE19%=
|
||||
%FILE20%=
|
||||
%FILE21%=
|
||||
%FILE22%=
|
||||
%FILE23%=
|
||||
%FILE24%=
|
||||
%FILE25%=
|
||||
%FILE26%=
|
||||
|
||||
|
||||
13
wsl-l.bat
13
wsl-l.bat
@@ -1,13 +0,0 @@
|
||||
@echo off
|
||||
|
||||
rem Start mintty terminal for WSL with login shell
|
||||
|
||||
if "%installdir%" == "" set installdir=%LOCALAPPDATA%\wsltty
|
||||
if "%configdir%" == "" set configdir=%APPDATA%\wsltty
|
||||
|
||||
rem To enable invocation of this script from WIN+R or from cmd.exe,
|
||||
rem you may want to copy this script into "%SYSTEMROOT%\System32",
|
||||
rem or include the installation folder "%LOCALAPPDATA%\wsltty" in your PATH
|
||||
|
||||
"%installdir%\bin\mintty.exe" --wsl -h err "--configdir=%configdir%" -o Locale=C -o Charset=UTF-8 -i "%LOCALAPPDATA%\wsltty\wsl.ico" /bin/wslbridge -t /bin/bash -l
|
||||
|
||||
13
wsl.bat
13
wsl.bat
@@ -1,13 +0,0 @@
|
||||
@echo off
|
||||
|
||||
rem Start mintty terminal for WSL in current directory
|
||||
|
||||
if "%installdir%" == "" set installdir=%LOCALAPPDATA%\wsltty
|
||||
if "%configdir%" == "" set configdir=%APPDATA%\wsltty
|
||||
|
||||
rem To enable invocation of this script from WIN+R or from cmd.exe,
|
||||
rem you may want to copy this script into "%SYSTEMROOT%\System32",
|
||||
rem or include the installation folder "%LOCALAPPDATA%\wsltty" in your PATH
|
||||
|
||||
"%installdir%\bin\mintty.exe" --wsl -h err "--configdir=%configdir%" -o Locale=C -o Charset=UTF-8 -i "%LOCALAPPDATA%\wsltty\wsl.ico" /bin/wslbridge -t /bin/bash
|
||||
|
||||
13
wsl~.bat
13
wsl~.bat
@@ -1,13 +0,0 @@
|
||||
@echo off
|
||||
|
||||
rem Start mintty terminal for WSL in WSL home directory
|
||||
|
||||
if "%installdir%" == "" set installdir=%LOCALAPPDATA%\wsltty
|
||||
if "%configdir%" == "" set configdir=%APPDATA%\wsltty
|
||||
|
||||
rem To enable invocation of this script from WIN+R or from cmd.exe,
|
||||
rem you may want to copy this script into "%SYSTEMROOT%\System32",
|
||||
rem or include the installation folder "%LOCALAPPDATA%\wsltty" in your PATH
|
||||
|
||||
"%installdir%\bin\mintty.exe" --wsl -h err "--configdir=%configdir%" -o Locale=C -o Charset=UTF-8 -i "%LOCALAPPDATA%\wsltty\wsl.ico" /bin/wslbridge -C~ -t /bin/bash
|
||||
|
||||
Reference in New Issue
Block a user