1
0
mirror of https://github.com/mintty/wsltty.git synced 2024-10-05 10:21:06 +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>
@ -6,14 +6,14 @@ Mintty as a terminal for Bash on Ubuntu on Windows / WSL.
WSLtty components
* wsltty package components (see below) in the users local application folder
`%LOCALAPPDATA%` (where WSL is also installed)
* a wsltty configuration directory in the users application folder `%APPDATA%`;
“home”-located configuration files from a previously installed version
will be migrated to the new default location
* Start Menu and Desktop shortcuts to start a WSL bash (with some variations, see below)
* optional context menu entries for Windows Explorer to start a WSL bash in the respective folder
* install/uninstall context menu items from Start Menu subfolder
* `wsl*.bat` scripts to invoke wsltty manually (with some variations and invocation options, see below)
`%LOCALAPPDATA%`
* a wsltty configuration directory in the users 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
* 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 ###
@ -36,6 +36,7 @@ Note this has to be done within a Cygwin environment.
#### Installation to non-default locations ####
(For experts)
Within the installation process, provide parameters to the script `install.bat`.
The optional first parameter designates the installation target,
the optional second parameter designates the configuration directory.
@ -43,37 +44,55 @@ the optional second parameter designates the configuration directory.
### Invocation ###
WSLtty can be invoked with
* installed desktop shortcuts or Start menu shortcuts
* wsl*.bat scripts generated into the installation directory
* Explorer context menu (if installed from the Start menu)
* installed Start Menu shortcuts (or Desktop shortcuts if copied there)
* *.bat scripts
* 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 the `--configdir` option.
is discouraged because that would bypass some essential options.
### Configuration ###
#### Command line scripts `wsl*.bat` ####
WSLtty installs the following scripts in its application folder `%LOCALAPPDATA%\wsltty`:
* `wsl.bat` to start a WSL bash in the current folder/directory
* `wsl~.bat` to start a WSL bash in the WSL user home
* `wsl-l.bat` to start a WSL login bash
WSLtty installs the following scripts into `%LOCALAPPDATA%\Microsoft\WindowsApps`
(and a copy in its application folder `%LOCALAPPDATA%\wsltty`):
To enable invocation of these scripts from WIN+R or from cmd.exe,
copy them from `%LOCALAPPDATA%\wsltty` into `%SYSTEMROOT%\System32`,
renaming them as desired.
(The package does not do this to avoid trouble with missing admin privileges.)
* 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
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 ####
The Start Menu subfolder WSLtty offers three shortcuts:
* `WSL Bash % in Mintty` to start a WSL bash in the Windows %USERPROFILE% 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
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
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.
#### 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 can maintain its configuration file in various locations,
@ -103,9 +122,9 @@ Note:
#### Shell selection ####
To invoke your favourite shell, simply replace `/bin/bash` with its pathname
in the Desktop shortcuts, `wsl*.bat` invocation scripts,
or Explorer context menu commands (configured in `config-context-menu.bat`).
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.
### 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 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 "%installdir%\wsl~.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 "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"
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 zoo.exe "%installdir%\bin"
copy wslbridge.exe "%installdir%\bin"
@ -49,30 +56,46 @@ copy po.zoo "%installdir%\usr\share\mintty\lang"
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 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 Bash %% in Mintty"
cscript mkshortcut.vbs "/name:WSL %% in Mintty"
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
cscript mkshortcut.vbs "/name:WSL Bash -l in Mintty"
cscript mkshortcut.vbs "/name:WSL -l in Mintty"
rem create Start Menu Folder
set smf=%APPDATA%\Microsoft\Windows\Start Menu\Programs\WSLtty
mkdir "%smf%"
copy "wsltty home & help.url" "%smf%"
copy "WSL Bash %% in Mintty.lnk" "%smf%"
copy "WSL Bash ~ in Mintty.lnk" "%smf%"
copy "WSL Bash -l in Mintty.lnk" "%smf%"
mkdir "%smf%\context menu shortcuts"
copy "add to context menu.lnk" "%smf%\context menu shortcuts"
copy "remove from context menu.lnk" "%smf%\context menu shortcuts"
copy "add 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" "%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
copy "WSL Bash %% in Mintty.lnk" "%USERPROFILE%\Desktop"
copy "WSL Bash ~ in Mintty.lnk" "%USERPROFILE%\Desktop"
copy "WSL %% in Mintty.lnk" "%USERPROFILE%\Desktop"
copy "WSL ~ in Mintty.lnk" "%USERPROFILE%\Desktop"
:sysconfig
@ -108,5 +131,10 @@ mkdir "%configdir%\themes"
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"
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

View File

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

View File

@ -23,9 +23,9 @@ UserQuietInstCmd=%UserQuietInstCmd%
SourceFiles=SourceFiles
[Strings]
InstallPrompt=Install Mintty terminal for WSL / Ubuntu on Windows?
InstallPrompt=Install Mintty terminal for WSL (Windows Subsystem for Linux)?
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
FriendlyName=wsltty
AppLaunched=cmd.exe /c install.bat
@ -39,21 +39,26 @@ FILE3="wslbridge.exe"
FILE4="wslbridge-backend"
FILE5="LICENSE.mintty"
FILE6="LICENSE.wslbridge"
FILE7="WSL Bash % in Mintty.lnk"
FILE8="WSL Bash ~ in Mintty.lnk"
FILE9="WSL Bash -l in Mintty.lnk"
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"
FILE13="install.bat"
FILE14="uninstall.bat"
FILE15="config-context-menu.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=mkshortcut.vbs
FILE21="dash.exe"
FILE22="regtool.exe"
FILE23="config-distros.sh"
FILE24="configure WSL shortcuts.lnk"
FILE25="mkshortcut.vbs"
FILE26="VERSION"
[SourceFiles]
SourceFiles0=.
@ -81,4 +86,9 @@ SourceFiles0=.
%FILE19%=
%FILE20%=
%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 /target:%LOCALAPPDATA%\wsltty\bin\mintty.exe
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:
name = Wscript.Arguments.Named("name") & ".lnk"
set wshell = WScript.CreateObject("WScript.Shell")
wscript.echo "Creating " & name
set lnk = wshell.CreateShortcut(name)
rem Target:
@ -23,8 +25,8 @@ lnk.TargetPath = wshell.ExpandEnvironmentStrings("%target%")
minttyargs = wshell.ExpandEnvironmentStrings("%minttyargs%")
bridgeargs = wshell.ExpandEnvironmentStrings("%bridgeargs%")
lnk.Arguments = minttyargs & bridgeargs
wscript.echo "minttyargs: " & minttyargs
wscript.echo lnk.Arguments
rem wscript.echo "minttyargs: " & minttyargs
rem wscript.echo lnk.Arguments
rem Start in:
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 icon = icon & ", " & iconoffset
icon = wshell.ExpandEnvironmentStrings("%icon%")
wscript.echo "icon: " & icon
rem wscript.echo "icon: " & 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 lnk.HotKey = "ALT+CTRL+W"
@ -50,3 +53,5 @@ rem lnk.IconLocation = Wscript.Arguments.Named("desc")
rem lnk.Description = "WSLtty"
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
rmdir /S /Q "%smf%"
rem delete Desktop Shortcuts
del "%USERPROFILE%\Desktop\WSL Bash % in Mintty.lnk"
del "%USERPROFILE%\Desktop\WSL Bash ~ in Mintty.lnk"
rem delete Desktop Shortcuts (not installed anymore)
rem del "%USERPROFILE%\Desktop\WSL % 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
call "%installdir%\config-context-menu.bat" /U
cd %installdir%
bin\dash.exe config-distros.sh -contextmenu-remove
:undeploy
cd %installdir%
rem currently not removing software

View File

@ -1,15 +1,13 @@
@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 "%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 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"
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
"%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

10
wsl.bat
View File

@ -1,15 +1,13 @@
@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 "%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 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"
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
"%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

BIN
wsl.ico Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 KiB

View File

@ -1,15 +1,13 @@
@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 "%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 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"
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
"%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