1
0
mirror of https://github.com/mintty/wsltty.git synced 2024-10-05 18:31:04 +01:00

support new WSL distribution model (#52)

This commit is contained in:
mintty 2017-07-28 14:14:51 +02:00
parent 0a39c664e2
commit 48f69cb11f
22 changed files with 323 additions and 150 deletions

View File

@ -1,4 +1,4 @@
Mintty as a terminal for Bash on Ubuntu on Windows / WSL. Mintty as a terminal for WSL (Windows Subsystem for Linux).
<img align=right src=wsltty.png> <img align=right src=wsltty.png>
@ -6,14 +6,14 @@ Mintty as a terminal for Bash on Ubuntu on Windows / WSL.
WSLtty components WSLtty components
* wsltty package components (see below) in the users local application folder * wsltty package components (see below) in the users local application folder
`%LOCALAPPDATA%` (where WSL is also installed) `%LOCALAPPDATA%`
* a wsltty configuration directory in the users application folder `%APPDATA%`; * a wsltty configuration directory in the users application folder `%APPDATA%`
“home”-located configuration files from a previously installed version (“home”-located configuration files from a previously installed version
will be migrated to the new default location will be migrated to the new default location)
* Start Menu and Desktop shortcuts to start a WSL bash (with some variations, see below) * Start Menu shortcuts to start a WSL shell (with some variations, see below)
* optional context menu entries for Windows Explorer to start a WSL bash in the respective folder * `*.bat` scripts to invoke WSL from the command line (see below)
* install/uninstall context menu items from Start Menu subfolder * optional context menu entries for Windows Explorer to start a WSL shell in the respective folder
* `wsl*.bat` scripts to invoke wsltty manually (with some variations and invocation options, see below) * 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 * an uninstall script that can be invoked manually to remove shortcuts and context menu entries
### Installation ### ### Installation ###
@ -36,6 +36,7 @@ Note this has to be done within a Cygwin environment.
#### Installation to non-default locations #### #### Installation to non-default locations ####
(For experts)
Within the installation process, provide parameters to the script `install.bat`. Within the installation process, provide parameters to the script `install.bat`.
The optional first parameter designates the installation target, The optional first parameter designates the installation target,
the optional second parameter designates the configuration directory. the optional second parameter designates the configuration directory.
@ -43,37 +44,55 @@ the optional second parameter designates the configuration directory.
### Invocation ### ### Invocation ###
WSLtty can be invoked with WSLtty can be invoked with
* installed desktop shortcuts or Start menu shortcuts * installed Start Menu shortcuts (or Desktop shortcuts if copied there)
* wsl*.bat scripts generated into the installation directory * *.bat scripts
* Explorer context menu (if installed from the Start menu) * Explorer context menu (if installed from the Start Menu `WSLtty` subfolder)
Starting the mintty terminal directly from the WSLtty installation location Starting the mintty terminal directly from the WSLtty installation location
is discouraged because that would bypass the `--configdir` option. is discouraged because that would bypass some essential options.
### Configuration ### ### Configuration ###
#### Command line scripts `wsl*.bat` #### #### Command line scripts `wsl*.bat` ####
WSLtty installs the following scripts in its application folder `%LOCALAPPDATA%\wsltty`: WSLtty installs the following scripts into `%LOCALAPPDATA%\Microsoft\WindowsApps`
* `wsl.bat` to start a WSL bash in the current folder/directory (and a copy in its application folder `%LOCALAPPDATA%\wsltty`):
* `wsl~.bat` to start a WSL bash in the WSL user home
* `wsl-l.bat` to start a WSL login bash
To enable invocation of these scripts from WIN+R or from cmd.exe, * For each installed WSL distribution D, D`.bat` to start in the current folder/directory
copy them from `%LOCALAPPDATA%\wsltty` into `%SYSTEMROOT%\System32`, * For each installed WSL distribution D, D`~.bat` to start in the WSL user home
renaming them as desired. * `wsl.bat` to start the default WSL installation in the current folder/directory
(The package does not do this to avoid trouble with missing admin privileges.) * `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
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 #### #### Start Menu and Desktop shortcuts ####
The Start Menu subfolder WSLtty offers three shortcuts: In the Start Menu, the following shortcuts are installed:
* `WSL Bash % in Mintty` to start a WSL bash in the Windows %USERPROFILE% home * For each installed WSL distribution D, D` in Mintty` to start in the WSL user home
* `WSL Bash ~ in Mintty` to start a WSL bash in the WSL user home
* `WSL Bash -l in Mintty` to start a WSL login bash
To ensure a login bash to start in your Linux home directory, 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. 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.
They are not installed by default.
To add or remove context menu entries, run the respective script from the
Start Menu subfolder `WSLtty`.
#### Mintty settings #### #### Mintty settings ####
Mintty can maintain its configuration file in various locations, Mintty can maintain its configuration file in various locations,
@ -103,9 +122,9 @@ Note:
#### Shell selection #### #### Shell selection ####
To invoke your favourite shell, simply replace `/bin/bash` with its pathname To invoke your favourite shell, replace `/bin/bash` with its pathname
in the Desktop shortcuts, `wsl*.bat` invocation scripts, in the Desktop or Start Menu shortcuts and `*.bat` launch scripts,
or Explorer context menu commands (configured in `config-context-menu.bat`). or Explorer context menu commands.
### Components ### ### Components ###

1
VERSION Normal file
View File

@ -0,0 +1 @@
0.7.9

BIN
WSL % in Mintty.lnk Executable file

Binary file not shown.

BIN
WSL -l in Mintty.lnk Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
WSL ~ in Mintty.lnk Executable file

Binary file not shown.

Binary file not shown.

View File

@ -1,59 +0,0 @@
@echo off
if "%installdir%" == "" set installdir=%LOCALAPPDATA%\wsltty
if "%configdir%" == "" set configdir=%APPDATA%\wsltty
if "%1"=="/U" goto remove
if "%1"=="/u" goto remove
:add
rem add to Explorer context menu
set userdirname=HKEY_CURRENT_USER\Software\Classes\Directory\shell
set userdirpane=HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell
rem WSL in Mintty
set label=WSL in Mintty
rem set here=in this directory
set here=Here
rem WSL icon
set icon=%LOCALAPPDATA%\lxss\bash.ico
rem WSL target shell
set shell=/bin/bash
rem Mintty invocation
set cmd=%installdir%\bin\mintty.exe
set cset=-o Locale=C -o Charset=UTF-8
set opts=--wsl -h err
set arg=/bin/wslbridge -t %shell%
set target0=\"%cmd%\" %opts% %cset% --configdir \"%configdir%\" -i \"%icon%\" %arg%
rem set target1=\"%cmd%\" %opts% %cset% --configdir \"%configdir%\" -i \"%icon%\" /bin/dash -c \"cd '%%1'; exec %arg%\"
set target1=\"%cmd%\" %opts% %cset% --configdir \"%configdir%\" -i \"%icon%\" --dir \"%%1\" %arg%
rem Registry entries
reg add "%userdirname%\wsltty" /d "%label% %here%" /f
reg add "%userdirname%\wsltty" /v Icon /d "%icon%" /f
reg add "%userdirname%\wsltty\command" /d "%target1%" /f
reg add "%userdirpane%\wsltty" /d "%label% %here%" /f
reg add "%userdirpane%\wsltty" /v Icon /d "%icon%" /f
reg add "%userdirpane%\wsltty\command" /d "%target0%" /f
goto end
:remove
rem remove from Explorer context menu
rem delete Explorer context menu
set userdirname=HKEY_CURRENT_USER\Software\Classes\Directory\shell
set userdirpane=HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell
reg delete "%userdirname%\wsltty" /f
reg delete "%userdirpane%\wsltty" /f
:end

159
config-distros.sh Executable file
View File

@ -0,0 +1,159 @@
#! /bin/sh
contextmenu=false
remove=false
case "$1" in
-contextmenu) contextmenu=true
shift;;
-contextmenu-remove)
contextmenu=true
remove=true
shift;;
-shortcuts-remove)
remove=true
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
}
fi
# dash built-in echo enforces interpretation of \t etc
echoc () {
cmd /c echo $*
}
while read line; do echo "$line"; done <</EOB > mkbat.bat
@echo off
echo Creating %1.bat
echo @echo off> %1.bat
echo rem Start mintty terminal for WSL package %distro% in current directory>> %1.bat
echo %target% -i "%icon%" %minttyargs% %bridgeargs%>> %1.bat
echo Created %1.bat
/EOB
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) |
while read guid
do
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"
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"
export target minttyargs bridgeargs icon
export distro
if $contextmenu
then
# create context menu entry
#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
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
fi
else
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"
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"
# 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"
# prepare versions to target WSL home directory
bridgeargs="-C~ $bridgeargs"
# 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"
# 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"
fi
fi;;
esac
done

BIN
configure WSL shortcuts.lnk Executable file

Binary file not shown.

View File

@ -22,19 +22,26 @@ echo set refinstalldir=%refinstalldir%>> setdirs.bat
echo set installdir=%installdir%>> setdirs.bat echo set installdir=%installdir%>> setdirs.bat
echo set refconfigdir=%refconfigdir%>> setdirs.bat echo set refconfigdir=%refconfigdir%>> setdirs.bat
echo set configdir=%configdir%>> 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 "%installdir%\wsl.bat"
copy setdirs.bat + wsl~.bat "%installdir%\wsl~.bat" copy setdirs.bat + wsl~.bat "%installdir%\wsl~.bat"
copy setdirs.bat + wsl-l.bat "%installdir%\wsl-l.bat" copy setdirs.bat + wsl-l.bat "%installdir%\wsl-l.bat"
copy setdirs.bat + uninstall.bat "%installdir%\uninstall.bat"
copy setdirs.bat + config-context-menu.bat "%installdir%\config-context-menu.bat"
copy "add to context menu.lnk" "%installdir%" copy "add to context menu.lnk" "%installdir%"
copy "remove from 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" mkdir "%installdir%\bin"
copy cygwin1.dll "%installdir%\bin" copy cygwin1.dll "%installdir%\bin"
copy cygwin-console-helper.exe "%installdir%\bin" copy cygwin-console-helper.exe "%installdir%\bin"
rem copy dash.exe "%installdir%\bin" copy dash.exe "%installdir%\bin"
copy regtool.exe "%installdir%\bin"
copy mintty.exe "%installdir%\bin" copy mintty.exe "%installdir%\bin"
copy zoo.exe "%installdir%\bin" copy zoo.exe "%installdir%\bin"
copy wslbridge.exe "%installdir%\bin" copy wslbridge.exe "%installdir%\bin"
@ -49,30 +56,46 @@ copy po.zoo "%installdir%\usr\share\mintty\lang"
rem generate shortcuts rem generate shortcuts
set icon=%%LOCALAPPDATA%%\lxss\bash.ico 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 target=%refinstalldir%\bin\mintty.exe
set minttyargs=--wsl -h err --configdir="%refconfigdir%" -o Locale=C -o Charset=UTF-8 /bin/wslbridge set minttyargs=--wsl -h err --configdir="%refconfigdir%" -o Locale=C -o Charset=UTF-8 /bin/wslbridge
set bridgeargs=-t /bin/bash set bridgeargs=-t /bin/bash
cscript mkshortcut.vbs "/name:WSL Bash %% in Mintty" cscript mkshortcut.vbs "/name:WSL %% in Mintty"
set bridgeargs=-C~ -t /bin/bash set bridgeargs=-C~ -t /bin/bash
cscript mkshortcut.vbs "/name:WSL Bash ~ in Mintty" cscript mkshortcut.vbs "/name:WSL ~ in Mintty"
set bridgeargs=-t /bin/bash -l set bridgeargs=-t /bin/bash -l
cscript mkshortcut.vbs "/name:WSL Bash -l in Mintty" cscript mkshortcut.vbs "/name:WSL -l in Mintty"
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%" mkdir "%smf%"
copy "wsltty home & help.url" "%smf%" copy "wsltty home & help.url" "%smf%"
copy "WSL Bash %% in Mintty.lnk" "%smf%" copy "add to context menu.lnk" "%smf%"
copy "WSL Bash ~ in Mintty.lnk" "%smf%" copy "remove from context menu.lnk" "%smf%"
copy "WSL Bash -l in Mintty.lnk" "%smf%" copy "configure WSL shortcuts.lnk" "%smf%"
mkdir "%smf%\context menu shortcuts" rem clean up previous installation
copy "add to context menu.lnk" "%smf%\context menu shortcuts" rmdir /S /Q "%smf%\context menu shortcuts"
copy "remove from context menu.lnk" "%smf%\context menu shortcuts"
rem create launch shortcuts for default WSL distro
copy "WSL %% in Mintty.lnk" "%smf%"
copy "WSL ~ in Mintty.lnk" "%smf%"
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 rem create Desktop Shorcuts
copy "WSL Bash %% in Mintty.lnk" "%USERPROFILE%\Desktop" copy "WSL %% in Mintty.lnk" "%USERPROFILE%\Desktop"
copy "WSL Bash ~ in Mintty.lnk" "%USERPROFILE%\Desktop" copy "WSL ~ in Mintty.lnk" "%USERPROFILE%\Desktop"
:sysconfig :sysconfig
@ -108,5 +131,10 @@ mkdir "%configdir%\themes"
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"
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
:end :end

View File

@ -9,10 +9,11 @@
all: check pkg all: check pkg
# wsltty release # wsltty release
ver=0.7.8.3 #ver=1.7.9
ver=0.7.9
# mintty release version # mintty release version
#minttyver=2.7.8 #minttyver=2.7.9
minttyver=master minttyver=master
# wslbridge backend version # wslbridge backend version
@ -23,7 +24,11 @@ wslbridgever=0.2.3
# therefore using "master" below # therefore using "master" below
#wslbridge-frontend=wslbridge-frontend #wslbridge-frontend=wslbridge-frontend
# release 0.2.1 is updated and complete, no separate frontend build needed: # release 0.2.1 is updated and complete, no separate frontend build needed:
wslbridge-frontend= #wslbridge-frontend=
#wslbridge-commit=master
# use --distro-guid option:
wslbridge-frontend=wslbridge-frontend
wslbridge-commit=cb22e3f6f989cefe5b6599d3c04422ded74db664
############################################################################# #############################################################################
# target checking and some defs # target checking and some defs
@ -70,16 +75,16 @@ wslbridge-backend:
tar xvzf wslbridge-$(wslbridgever)-$(sys).tar.gz tar xvzf wslbridge-$(wslbridgever)-$(sys).tar.gz
mkdir -p bin mkdir -p bin
cp wslbridge-$(wslbridgever)-$(sys)/wslbridge* bin/ cp wslbridge-$(wslbridgever)-$(sys)/wslbridge* bin/
cp wslbridge-$(wslbridgever)-$(sys)/LICENSE.txt LICENSE.wslbridge tr -d '\015' < wslbridge-$(wslbridgever)-$(sys)/LICENSE.txt > LICENSE.wslbridge
wslbridge-frontend: wslbridge-frontend:
$(wgeto) https://github.com/rprichard/wslbridge/archive/master.zip -o wslbridge-master.zip $(wgeto) https://github.com/rprichard/wslbridge/archive/$(wslbridge-commit).zip -o wslbridge-$(wslbridge-commit).zip
unzip -o wslbridge-master.zip unzip -o wslbridge-$(wslbridge-commit).zip
cd wslbridge-master/frontend; make cd wslbridge-$(wslbridge-commit)/frontend; make
strip wslbridge-master/out/wslbridge.exe strip wslbridge-$(wslbridge-commit)/out/wslbridge.exe
mkdir -p bin mkdir -p bin
cp wslbridge-master/out/wslbridge.exe bin/ cp wslbridge-$(wslbridge-commit)/out/wslbridge.exe bin/
cp wslbridge-master/LICENSE.txt LICENSE.wslbridge tr -d '\015' < wslbridge-$(wslbridge-commit)/LICENSE.txt > LICENSE.wslbridge
mintty: mintty-get mintty-build mintty: mintty-get mintty-build
@ -98,7 +103,8 @@ cygwin:
mkdir -p bin mkdir -p bin
cp /bin/cygwin1.dll bin/ cp /bin/cygwin1.dll bin/
cp /bin/cygwin-console-helper.exe bin/ cp /bin/cygwin-console-helper.exe bin/
#cp /bin/dash.exe bin/ cp /bin/dash.exe bin/
cp /bin/regtool.exe bin/
cp /bin/zoo.exe bin/ cp /bin/zoo.exe bin/
cop: ver cop: ver
@ -107,16 +113,20 @@ cop: ver
sed -e "s,%version%,$(ver)," makewinx.cfg > rel/wsltty.SED sed -e "s,%version%,$(ver)," makewinx.cfg > rel/wsltty.SED
cp bin/cygwin1.dll rel/ cp bin/cygwin1.dll rel/
cp bin/cygwin-console-helper.exe rel/ cp bin/cygwin-console-helper.exe rel/
#cp bin/dash.exe rel/ cp bin/dash.exe rel/
cp bin/regtool.exe rel/
cp bin/mintty.exe rel/ cp bin/mintty.exe rel/
cp bin/zoo.exe rel/ cp bin/zoo.exe rel/
cp po.zoo rel/ cp po.zoo rel/
cp bin/wslbridge.exe rel/ cp bin/wslbridge.exe rel/
cp bin/wslbridge-backend rel/ cp bin/wslbridge-backend rel/
cp LICENSE.* rel/ cp LICENSE.* rel/
cp VERSION rel/
cp *.lnk rel/ cp *.lnk rel/
cp *.ico rel/
cp *.url rel/ cp *.url rel/
cp *.bat rel/ cp *.bat rel/
cp *.sh rel/
cp *.vbs rel/ cp *.vbs rel/
cab: cop cab: cop

View File

@ -23,9 +23,9 @@ UserQuietInstCmd=%UserQuietInstCmd%
SourceFiles=SourceFiles SourceFiles=SourceFiles
[Strings] [Strings]
InstallPrompt=Install Mintty terminal for WSL / Ubuntu on Windows? InstallPrompt=Install Mintty terminal for WSL (Windows Subsystem for Linux)?
DisplayLicense= DisplayLicense=
FinishMessage=Mintty for WSL installed - for documentation see https://github.com/mintty/mintty/wiki/Tips FinishMessage=Mintty for WSL installed - for documentation see https://github.com/mintty/wsltty
TargetName=wsltty-%version%-install.exe TargetName=wsltty-%version%-install.exe
FriendlyName=wsltty FriendlyName=wsltty
AppLaunched=cmd.exe /c install.bat AppLaunched=cmd.exe /c install.bat
@ -39,21 +39,26 @@ FILE3="wslbridge.exe"
FILE4="wslbridge-backend" FILE4="wslbridge-backend"
FILE5="LICENSE.mintty" FILE5="LICENSE.mintty"
FILE6="LICENSE.wslbridge" FILE6="LICENSE.wslbridge"
FILE7="WSL Bash % in Mintty.lnk" FILE7="WSL % in Mintty.lnk"
FILE8="WSL Bash ~ in Mintty.lnk" FILE8="WSL ~ in Mintty.lnk"
FILE9="WSL Bash -l in Mintty.lnk" FILE9="WSL -l in Mintty.lnk"
FILE10="wsl.bat" FILE10="wsl.bat"
FILE11="wsl~.bat" FILE11="wsl~.bat"
FILE12="wsl-l.bat" FILE12="wsl-l.bat"
FILE13="install.bat" FILE13="install.bat"
FILE14="uninstall.bat" FILE14="uninstall.bat"
FILE15="config-context-menu.bat" FILE15="wsl.ico"
FILE16="add to context menu.lnk" FILE16="add to context menu.lnk"
FILE17="remove from context menu.lnk" FILE17="remove from context menu.lnk"
FILE18="wsltty home & help.url" FILE18="wsltty home & help.url"
FILE19="zoo.exe" FILE19="zoo.exe"
FILE20="po.zoo" FILE20="po.zoo"
FILE21=mkshortcut.vbs FILE21="dash.exe"
FILE22="regtool.exe"
FILE23="config-distros.sh"
FILE24="configure WSL shortcuts.lnk"
FILE25="mkshortcut.vbs"
FILE26="VERSION"
[SourceFiles] [SourceFiles]
SourceFiles0=. SourceFiles0=.
@ -81,4 +86,9 @@ SourceFiles0=.
%FILE19%= %FILE19%=
%FILE20%= %FILE20%=
%FILE21%= %FILE21%=
%FILE22%=
%FILE23%=
%FILE24%=
%FILE25%=
%FILE26%=

View File

@ -8,11 +8,13 @@ rem -l
rem /arguments:--wsl -h err -o Locale=C -o Charset=UTF-8 /bin/wslbridge -t /bin/bash -l rem /arguments:--wsl -h err -o Locale=C -o Charset=UTF-8 /bin/wslbridge -t /bin/bash -l
rem /target:%LOCALAPPDATA%\wsltty\bin\mintty.exe rem /target:%LOCALAPPDATA%\wsltty\bin\mintty.exe
rem /workingdir:%USERPROFILE% rem /workingdir:%USERPROFILE%
rem /icon:%LOCALAPPDATA%\lxss\bash.ico rem rem /icon:%LOCALAPPDATA%\lxss\bash.ico
rem /icon:%LOCALAPPDATA%\wsltty\wsl.ico
rem General - Name: rem General - Name:
name = Wscript.Arguments.Named("name") & ".lnk" name = Wscript.Arguments.Named("name") & ".lnk"
set wshell = WScript.CreateObject("WScript.Shell") set wshell = WScript.CreateObject("WScript.Shell")
wscript.echo "Creating " & name
set lnk = wshell.CreateShortcut(name) set lnk = wshell.CreateShortcut(name)
rem Target: rem Target:
@ -23,8 +25,8 @@ lnk.TargetPath = wshell.ExpandEnvironmentStrings("%target%")
minttyargs = wshell.ExpandEnvironmentStrings("%minttyargs%") minttyargs = wshell.ExpandEnvironmentStrings("%minttyargs%")
bridgeargs = wshell.ExpandEnvironmentStrings("%bridgeargs%") bridgeargs = wshell.ExpandEnvironmentStrings("%bridgeargs%")
lnk.Arguments = minttyargs & bridgeargs lnk.Arguments = minttyargs & bridgeargs
wscript.echo "minttyargs: " & minttyargs rem wscript.echo "minttyargs: " & minttyargs
wscript.echo lnk.Arguments rem wscript.echo lnk.Arguments
rem Start in: rem Start in:
rem lnk.WorkingDirectory = Wscript.Arguments.Named("workingdir") rem lnk.WorkingDirectory = Wscript.Arguments.Named("workingdir")
@ -35,9 +37,10 @@ rem icon = Wscript.Arguments.Named("icon")
rem rem iconoffset = Wscript.Arguments.Named("iconoffset") rem rem iconoffset = Wscript.Arguments.Named("iconoffset")
rem rem icon = icon & ", " & iconoffset rem rem icon = icon & ", " & iconoffset
icon = wshell.ExpandEnvironmentStrings("%icon%") icon = wshell.ExpandEnvironmentStrings("%icon%")
wscript.echo "icon: " & icon rem wscript.echo "icon: " & icon
lnk.IconLocation = icon lnk.IconLocation = icon
rem lnk.IconLocation = "%LOCALAPPDATA%\lxss\bash.ico" rem rem lnk.IconLocation = "%LOCALAPPDATA%\lxss\bash.ico"
rem lnk.IconLocation = "%LOCALAPPDATA%\wsltty\wsl.ico"
rem Shorcut key: rem Shorcut key:
rem lnk.HotKey = "ALT+CTRL+W" rem lnk.HotKey = "ALT+CTRL+W"
@ -50,3 +53,5 @@ rem lnk.IconLocation = Wscript.Arguments.Named("desc")
rem lnk.Description = "WSLtty" rem lnk.Description = "WSLtty"
lnk.Save lnk.Save
wscript.echo "Created " & name
wscript.echo

Binary file not shown.

View File

@ -9,20 +9,26 @@ rem delete Start Menu Folder
set smf=%APPDATA%\Microsoft\Windows\Start Menu\Programs\WSLtty set smf=%APPDATA%\Microsoft\Windows\Start Menu\Programs\WSLtty
rmdir /S /Q "%smf%" rmdir /S /Q "%smf%"
rem delete Desktop Shortcuts rem delete Desktop Shortcuts (not installed anymore)
del "%USERPROFILE%\Desktop\WSL Bash % in Mintty.lnk" rem del "%USERPROFILE%\Desktop\WSL % in Mintty.lnk"
del "%USERPROFILE%\Desktop\WSL Bash ~ in Mintty.lnk" rem del "%USERPROFILE%\Desktop\WSL ~ in Mintty.lnk"
:start menu
cd %installdir%
bin\dash.exe config-distros.sh -shortcuts-remove
:explorer context menu :explorer context menu
call "%installdir%\config-context-menu.bat" /U cd %installdir%
bin\dash.exe config-distros.sh -contextmenu-remove
:undeploy :undeploy
cd %installdir% cd %installdir%
rem currently not removing software rem currently not removing software

View File

@ -1,15 +1,13 @@
@echo off @echo off
rem Start mintty terminal for WSL in home directory rem Start mintty terminal for WSL with login shell
if "%installdir%" == "" set installdir=%LOCALAPPDATA%\wsltty if "%installdir%" == "" set installdir=%LOCALAPPDATA%\wsltty
if "%configdir%" == "" set configdir=%APPDATA%\wsltty if "%configdir%" == "" set configdir=%APPDATA%\wsltty
rem To enable invocation of this script from WIN+R or from cmd.exe, 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 you may want to copy this script into "%SYSTEMROOT%\System32",
rem or include the installation folder "%LOCALAPPDATA%\wsltty" in your PATH
rem You may want a variant of this script without trailing "-l" "%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
rem to start in the current directory from cmd.exe
"%installdir%\bin\mintty.exe" --wsl -h err "--configdir=%configdir%" -o Locale=C -o Charset=UTF-8 -i "%LOCALAPPDATA%\lxss\bash.ico" /bin/wslbridge -t /bin/bash -l

10
wsl.bat
View File

@ -1,15 +1,13 @@
@echo off @echo off
rem Start mintty terminal for WSL in home directory rem Start mintty terminal for WSL in current directory
if "%installdir%" == "" set installdir=%LOCALAPPDATA%\wsltty if "%installdir%" == "" set installdir=%LOCALAPPDATA%\wsltty
if "%configdir%" == "" set configdir=%APPDATA%\wsltty if "%configdir%" == "" set configdir=%APPDATA%\wsltty
rem To enable invocation of this script from WIN+R or from cmd.exe, 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 you may want to copy this script into "%SYSTEMROOT%\System32",
rem or include the installation folder "%LOCALAPPDATA%\wsltty" in your PATH
rem You may want a variant of this script without trailing "-l" "%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
rem to start in the current directory from cmd.exe
"%installdir%\bin\mintty.exe" --wsl -h err "--configdir=%configdir%" -o Locale=C -o Charset=UTF-8 -i "%LOCALAPPDATA%\lxss\bash.ico" /bin/wslbridge -t /bin/bash

BIN
wsl.ico Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 KiB

View File

@ -1,15 +1,13 @@
@echo off @echo off
rem Start mintty terminal for WSL in home directory rem Start mintty terminal for WSL in WSL home directory
if "%installdir%" == "" set installdir=%LOCALAPPDATA%\wsltty if "%installdir%" == "" set installdir=%LOCALAPPDATA%\wsltty
if "%configdir%" == "" set configdir=%APPDATA%\wsltty if "%configdir%" == "" set configdir=%APPDATA%\wsltty
rem To enable invocation of this script from WIN+R or from cmd.exe, 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 you may want to copy this script into "%SYSTEMROOT%\System32",
rem or include the installation folder "%LOCALAPPDATA%\wsltty" in your PATH
rem You may want a variant of this script without trailing "-l" "%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
rem to start in the current directory from cmd.exe
"%installdir%\bin\mintty.exe" --wsl -h err "--configdir=%configdir%" -o Locale=C -o Charset=UTF-8 -i "%LOCALAPPDATA%\lxss\bash.ico" /bin/wslbridge -C~ -t /bin/bash