mirror of
https://github.com/mintty/wsltty.git
synced 2025-11-02 08:01:52 +00:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
92a7cceae2 | ||
|
|
1ef83d72e1 | ||
|
|
9be0b3ec10 | ||
|
|
276fb6ae88 | ||
|
|
288c56a3d2 | ||
|
|
082eb760eb | ||
|
|
d5cc2bfe77 | ||
|
|
1e453b05e9 | ||
|
|
ee8d3b0678 | ||
|
|
2f69d2740d | ||
|
|
4a55503707 | ||
|
|
48f69cb11f | ||
|
|
0a39c664e2 |
101
README.md
101
README.md
@@ -1,18 +1,19 @@
|
||||
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>
|
||||
|
||||
### Overview ###
|
||||
|
||||
WSLtty components
|
||||
* wsltty package components (see below) in the user’s local application folder
|
||||
`%LOCALAPPDATA%` (where WSL is also installed)
|
||||
* 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 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)
|
||||
* an uninstall script that can be invoked manually to remove shortcuts and context menu entries
|
||||
`%LOCALAPPDATA%`
|
||||
* 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 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`
|
||||
|
||||
### Installation ###
|
||||
|
||||
@@ -34,6 +35,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.
|
||||
@@ -41,36 +43,52 @@ 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 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
|
||||
|
||||
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.)
|
||||
|
||||
#### 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` Terminal` to start in the WSL user home
|
||||
* `WSL Terminal` to start the default WSL distribution (as configured with the Windows tool `wslconfig`)
|
||||
|
||||
To ensure a login bash to start in your Linux home directory,
|
||||
add a `cd` command to your `$HOME/.profile` on Linux side.
|
||||
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`
|
||||
(and a copy in its application folder `%LOCALAPPDATA%\wsltty`):
|
||||
|
||||
* 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` 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.
|
||||
|
||||
#### Context menu entries ####
|
||||
|
||||
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 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 ####
|
||||
|
||||
@@ -101,19 +119,22 @@ 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`).
|
||||
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/),
|
||||
then [Mintty manual page](http://mintty.github.io/mintty.1.html),
|
||||
and the [Mintty Wiki](https://github.com/mintty/mintty/wiki),
|
||||
For mintty, see the [Mintty homepage](http://mintty.github.io/)
|
||||
(with further screenshots),
|
||||
the [Mintty manual page](http://mintty.github.io/mintty.1.html),
|
||||
<br>and the [Mintty Wiki](https://github.com/mintty/mintty/wiki),
|
||||
including a [Hints and Tips page](https://github.com/mintty/mintty/wiki/Tips).
|
||||
|
||||
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.
Binary file not shown.
@@ -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
|
||||
216
config-distros.sh
Executable file
216
config-distros.sh
Executable file
@@ -0,0 +1,216 @@
|
||||
#! /bin/sh
|
||||
|
||||
contextmenu=false
|
||||
remove=false
|
||||
alldistros=true
|
||||
case "$1" in
|
||||
-shortcuts-remove)
|
||||
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
|
||||
}
|
||||
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 %name% in current directory>> %1.bat
|
||||
echo %target% -i "%icon%" %minttyargs% %bridgeargs%>> %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 || 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 "$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
|
||||
|
||||
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'
|
||||
|
||||
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
|
||||
# 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
|
||||
else
|
||||
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 Terminal.lnk"
|
||||
cmd /C del "%LOCALAPPDATA%\\Microsoft\\WindowsApps\\$name.bat"
|
||||
cmd /C del "%LOCALAPPDATA%\\Microsoft\\WindowsApps\\$name~.bat"
|
||||
else
|
||||
# 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"
|
||||
|
||||
# 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"
|
||||
minttyargs="$minttyargs -~"
|
||||
|
||||
# desktop shortcut in ~ -> Start Menu
|
||||
cscript /nologo mkshortcut.vbs "/name:$name Terminal"
|
||||
cmd /C copy "$name Terminal.lnk" "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs"
|
||||
|
||||
# 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
|
||||
fi
|
||||
done
|
||||
BIN
configure WSL shortcuts.lnk
Executable file
BIN
configure WSL shortcuts.lnk
Executable file
Binary file not shown.
66
install.bat
66
install.bat
@@ -14,27 +14,27 @@ 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 + 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 "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%"
|
||||
|
||||
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"
|
||||
@@ -45,37 +45,20 @@ mkdir "%installdir%\usr\share\mintty\lang"
|
||||
copy po.zoo "%installdir%\usr\share\mintty\lang"
|
||||
|
||||
|
||||
:shortcuts
|
||||
|
||||
rem generate shortcuts
|
||||
|
||||
set icon=%%LOCALAPPDATA%%\lxss\bash.ico
|
||||
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"
|
||||
set bridgeargs=-C~ -t /bin/bash
|
||||
cscript mkshortcut.vbs "/name:WSL Bash ~ in Mintty"
|
||||
set bridgeargs=-t /bin/bash -l
|
||||
cscript mkshortcut.vbs "/name:WSL Bash -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 "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"
|
||||
|
||||
rem create Desktop Shorcuts
|
||||
copy "WSL Bash %% in Mintty.lnk" "%USERPROFILE%\Desktop"
|
||||
copy "WSL Bash ~ in Mintty.lnk" "%USERPROFILE%\Desktop"
|
||||
|
||||
|
||||
:sysconfig
|
||||
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 unpack config files in system config directory
|
||||
cd /D "%installdir%\usr\share\mintty\lang"
|
||||
@@ -108,5 +91,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"
|
||||
rem bin\dash.exe "%installdir%\config-distros.sh" -contextmenu
|
||||
|
||||
|
||||
:end
|
||||
|
||||
42
makefile
42
makefile
@@ -9,14 +9,14 @@
|
||||
all: check pkg
|
||||
|
||||
# wsltty release
|
||||
ver=0.7.8.3
|
||||
ver=1.8.1
|
||||
|
||||
# mintty release version
|
||||
#minttyver=2.7.8
|
||||
minttyver=master
|
||||
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;
|
||||
@@ -24,6 +24,12 @@ wslbridgever=0.2.3
|
||||
#wslbridge-frontend=wslbridge-frontend
|
||||
# release 0.2.1 is updated and complete, no separate frontend build needed:
|
||||
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
|
||||
@@ -70,16 +76,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
|
||||
|
||||
@@ -87,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
|
||||
@@ -98,7 +107,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 +117,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
|
||||
|
||||
28
makewinx.cfg
28
makewinx.cfg
@@ -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,21 @@ 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"
|
||||
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="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
|
||||
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=.
|
||||
|
||||
@@ -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.
@@ -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
|
||||
|
||||
|
||||
|
||||
15
wsl-l.bat
15
wsl-l.bat
@@ -1,15 +0,0 @@
|
||||
@echo off
|
||||
|
||||
rem Start mintty terminal for WSL in 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 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
|
||||
|
||||
15
wsl.bat
15
wsl.bat
@@ -1,15 +0,0 @@
|
||||
@echo off
|
||||
|
||||
rem Start mintty terminal for WSL in 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 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
|
||||
|
||||
BIN
wsltty.png
Normal file
BIN
wsltty.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
15
wsl~.bat
15
wsl~.bat
@@ -1,15 +0,0 @@
|
||||
@echo off
|
||||
|
||||
rem Start mintty terminal for WSL in 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 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
|
||||
|
||||
Reference in New Issue
Block a user