mirror of
https://github.com/mintty/wsltty.git
synced 2025-11-17 15:26:06 +00:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
288c56a3d2 | ||
|
|
082eb760eb | ||
|
|
d5cc2bfe77 | ||
|
|
1e453b05e9 | ||
|
|
ee8d3b0678 | ||
|
|
2f69d2740d |
64
README.md
64
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,35 +75,16 @@ 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
|
||||
Start Menu subfolder `WSLtty`.
|
||||
@@ -122,11 +118,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 +136,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.
@@ -3,41 +3,71 @@
|
||||
contextmenu=false
|
||||
remove=false
|
||||
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-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*)
|
||||
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*)
|
||||
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 +75,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 +84,123 @@ 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) |
|
||||
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
|
||||
|
||||
68
install.bat
68
install.bat
@@ -14,31 +14,20 @@ 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 "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,29 +44,13 @@ 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 "remove from context menu.lnk" "%smf%"
|
||||
@@ -85,27 +58,6 @@ 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 +92,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.0
|
||||
|
||||
# mintty release version
|
||||
minttyver=2.7.9
|
||||
minttyver=2.8.0
|
||||
#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
|
||||
|
||||
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