mirror of
				https://github.com/mintty/wsltty.git
				synced 2025-11-04 09:01:52 +00:00 
			
		
		
		
	Compare commits
	
		
			19 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					4a55503707 | ||
| 
						 | 
					48f69cb11f | ||
| 
						 | 
					0a39c664e2 | ||
| 
						 | 
					fecb6c49af | ||
| 
						 | 
					b017982c19 | ||
| 
						 | 
					f6016239df | ||
| 
						 | 
					b5349bf6db | ||
| 
						 | 
					3b1ecb2e01 | ||
| 
						 | 
					beed642144 | ||
| 
						 | 
					a3c32980e7 | ||
| 
						 | 
					e6ce36e2bd | ||
| 
						 | 
					d865b01135 | ||
| 
						 | 
					1e7bb5fc6e | ||
| 
						 | 
					8ffb732330 | ||
| 
						 | 
					0d1f0875be | ||
| 
						 | 
					d7c73fb40e | ||
| 
						 | 
					1049ca2baf | ||
| 
						 | 
					088f3bc06b | ||
| 
						 | 
					28dfd66e09 | 
@@ -1,21 +1,21 @@
 | 
			
		||||
The MIT License (MIT)
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2016 Ryan Prichard
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
of this software and associated documentation files (the "Software"), to
 | 
			
		||||
deal in the Software without restriction, including without limitation the
 | 
			
		||||
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 | 
			
		||||
sell copies of the Software, and to permit persons to whom the Software is
 | 
			
		||||
furnished to do so, subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be included in
 | 
			
		||||
all copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
			
		||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 | 
			
		||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 | 
			
		||||
IN THE SOFTWARE.
 | 
			
		||||
The MIT License (MIT)
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2016 Ryan Prichard
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
of this software and associated documentation files (the "Software"), to
 | 
			
		||||
deal in the Software without restriction, including without limitation the
 | 
			
		||||
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 | 
			
		||||
sell copies of the Software, and to permit persons to whom the Software is
 | 
			
		||||
furnished to do so, subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be included in
 | 
			
		||||
all copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
			
		||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
			
		||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
			
		||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
			
		||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 | 
			
		||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 | 
			
		||||
IN THE SOFTWARE.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										137
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										137
									
								
								README.md
									
									
									
									
									
								
							@@ -1,68 +1,137 @@
 | 
			
		||||
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 ###
 | 
			
		||||
 | 
			
		||||
Run the [installer](https://github.com/mintty/wsltty/releases) to install
 | 
			
		||||
* wsltty package components (see below) in the user’s application folder (where WSL is also installed)
 | 
			
		||||
* an empty wsltty “home directory” to enable storage of a mintty config file
 | 
			
		||||
* 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)
 | 
			
		||||
WSLtty components
 | 
			
		||||
* wsltty package components (see below) in the user’s local application folder 
 | 
			
		||||
  `%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 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 ###
 | 
			
		||||
 | 
			
		||||
#### WSLtty installer ####
 | 
			
		||||
 | 
			
		||||
Run the [installer](https://github.com/mintty/wsltty/releases) to install 
 | 
			
		||||
the components listed above.
 | 
			
		||||
If Windows complains with a “Windows protected your PC” popup, 
 | 
			
		||||
you may need to click “Run anyway” to proceed with the installation.
 | 
			
		||||
You may need to open the Properties of the installer first, tab “General” 
 | 
			
		||||
section “Security” (if available) and select “Unblock”, 
 | 
			
		||||
to enable the “Run anyway” button.
 | 
			
		||||
 | 
			
		||||
#### Installation from source repository ####
 | 
			
		||||
 | 
			
		||||
Download or checkout the wsltty repository.
 | 
			
		||||
Invoke `make`, then `make install`.
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
### Invocation ###
 | 
			
		||||
 | 
			
		||||
WSLtty can be invoked with
 | 
			
		||||
* 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 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, 
 | 
			
		||||
with the following precedence:
 | 
			
		||||
* file given with mintty option `-c`
 | 
			
		||||
* `%LOCALAPPDATA%\wsltty\home\%USERNAME%\.minttyrc`
 | 
			
		||||
* `%LOCALAPPDATA%\wsltty\home\%USERNAME%\.config\mintty\config`
 | 
			
		||||
* file given with mintty option `-c` (not used by wsltty default installation)
 | 
			
		||||
* file `config` in directory given with mintty option `--configdir`
 | 
			
		||||
  * This is `%APPDATA%\wsltty\config` in the default wsltty installation.
 | 
			
		||||
* `%HOME%\.minttyrc` (usage deprecated with wsltty)
 | 
			
		||||
* `%HOME%\.config\mintty\config` (usage deprecated with wsltty)
 | 
			
		||||
* `%APPDATA%\mintty\config`
 | 
			
		||||
* `%LOCALAPPDATA%\wsltty\etc\minttyrc`
 | 
			
		||||
* `%LOCALAPPDATA%\wsltty\etc\minttyrc` (usage deprecated with wsltty)
 | 
			
		||||
 | 
			
		||||
Note that the `%APPDATA%\mintty\config` option provides the possibility 
 | 
			
		||||
to maintain common mintty settings for various installations (like 
 | 
			
		||||
wsltty, Cygwin, MinGW/msys, Git for Windows, MinEd for Windows).
 | 
			
		||||
Note:
 | 
			
		||||
* `%APPDATA%\wsltty\config` is the new user configuration file location. 
 | 
			
		||||
  Further subdirectories of `%APPDATA%\wsltty` are used for language, 
 | 
			
		||||
  themes, and sounds resource configuration. 
 | 
			
		||||
  Note the distinction from `%LOCALAPPDATA%\wsltty` which is the default 
 | 
			
		||||
  wsltty software installation location.
 | 
			
		||||
* The `%APPDATA%\mintty\config` option provides the possibility to 
 | 
			
		||||
  maintain common mintty settings for various installations (like 
 | 
			
		||||
  wsltty, Cygwin, MinGW/msys, Git for Windows, MinEd for Windows).
 | 
			
		||||
* (About deprecated options) By default, `%HOME%` would refer to the 
 | 
			
		||||
  root directory of the cygwin standalone installation hosting wsltty. 
 | 
			
		||||
  So `%HOME%` would mean `%LOCALAPPDATA%\wsltty\home\%USERNAME%`.
 | 
			
		||||
  If you define `HOME` at Windows level, this changes accordingly.
 | 
			
		||||
  Note, however, that the WSL `HOME` is a completely different setting.
 | 
			
		||||
 | 
			
		||||
#### 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 ###
 | 
			
		||||
 | 
			
		||||
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) 
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								WSL % in Mintty.lnk
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								WSL % in Mintty.lnk
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								WSL -l in Mintty.lnk
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											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
									
								
							
							
						
						
									
										
											BIN
										
									
								
								WSL ~ in Mintty.lnk
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -1,59 +0,0 @@
 | 
			
		||||
@echo off
 | 
			
		||||
 | 
			
		||||
rem See comments in install.bat about changing the installation directory.
 | 
			
		||||
set installdir=%LOCALAPPDATA%\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
 | 
			
		||||
set arg=/bin/wslbridge -t %shell%
 | 
			
		||||
set target0=\"%cmd%\" %opts% %cset% -i \"%icon%\" %arg%
 | 
			
		||||
rem set target1=\"%cmd%\" %opts% %cset% -i \"%icon%\" /bin/dash -c \"cd '%%1'; exec %arg%\"
 | 
			
		||||
set target1=\"%cmd%\" %opts% %cset% -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
									
								
							
							
						
						
									
										159
									
								
								config-distros.sh
									
									
									
									
									
										Executable 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
									
								
							
							
						
						
									
										
											BIN
										
									
								
								configure WSL shortcuts.lnk
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										148
									
								
								install.bat
									
									
									
									
									
								
							
							
						
						
									
										148
									
								
								install.bat
									
									
									
									
									
								
							@@ -1,11 +1,14 @@
 | 
			
		||||
@echo off
 | 
			
		||||
 | 
			
		||||
rem If you change the installation directory,
 | 
			
		||||
rem it also needs to be adapted in
 | 
			
		||||
rem - the Shortcut links *.lnk
 | 
			
		||||
rem - the cmd invocation scripts wsl*.bat
 | 
			
		||||
 | 
			
		||||
set refinstalldir=%%LOCALAPPDATA%%\wsltty
 | 
			
		||||
set installdir=%LOCALAPPDATA%\wsltty
 | 
			
		||||
set refconfigdir=%%APPDATA%%\wsltty
 | 
			
		||||
set configdir=%APPDATA%\wsltty
 | 
			
		||||
set oldroot=%installdir%
 | 
			
		||||
set oldhomedir=%installdir%\home\%USERNAME%
 | 
			
		||||
set oldconfigdir=%oldhomedir%\.config\mintty
 | 
			
		||||
if not "%1" == "" set refinstalldir=%1 && set installdir=%1
 | 
			
		||||
if not "%2" == "" set refconfigdir=%2 && set configdir=%2
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
:deploy
 | 
			
		||||
@@ -13,66 +16,131 @@ set installdir=%LOCALAPPDATA%\wsltty
 | 
			
		||||
mkdir "%installdir%"
 | 
			
		||||
copy LICENSE.mintty "%installdir%"
 | 
			
		||||
copy LICENSE.wslbridge "%installdir%"
 | 
			
		||||
copy uninstall.bat "%installdir%"
 | 
			
		||||
 | 
			
		||||
copy wsl.bat "%installdir%"
 | 
			
		||||
copy wsl~.bat "%installdir%"
 | 
			
		||||
copy wsl-l.bat "%installdir%"
 | 
			
		||||
copy "config-context-menu.bat" "%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%"
 | 
			
		||||
rem does not work without admin rights:
 | 
			
		||||
rem copy wsl.bat "%SYSTEMROOT%\System32"
 | 
			
		||||
rem copy wsl~.bat "%SYSTEMROOT%\System32"
 | 
			
		||||
rem copy wsl-l.bat "%SYSTEMROOT%\System32"
 | 
			
		||||
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"
 | 
			
		||||
copy wslbridge-backend "%installdir%\bin"
 | 
			
		||||
 | 
			
		||||
rem create "home directory" to enable storage of config file
 | 
			
		||||
mkdir "%installdir%\home
 | 
			
		||||
mkdir "%installdir%\home\%USERNAME%"
 | 
			
		||||
 | 
			
		||||
rem create "config directory" and copy config archive
 | 
			
		||||
mkdir "%installdir%\home\%USERNAME%\.config"
 | 
			
		||||
mkdir "%installdir%\home\%USERNAME%\.config\mintty"
 | 
			
		||||
mkdir "%installdir%\home\%USERNAME%\.config\mintty\lang"
 | 
			
		||||
copy po.zoo "%installdir%\home\%USERNAME%\.config\mintty\lang"
 | 
			
		||||
 | 
			
		||||
rem create "temp directory" for version checking
 | 
			
		||||
mkdir "%installdir%\tmp
 | 
			
		||||
rem create system config directory and copy config archive
 | 
			
		||||
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%"
 | 
			
		||||
echo on
 | 
			
		||||
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" "%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 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"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
:config
 | 
			
		||||
:sysconfig
 | 
			
		||||
 | 
			
		||||
rem unpack config files
 | 
			
		||||
cd /D "%installdir%\home\%USERNAME%\.config\mintty\lang"
 | 
			
		||||
"%installdir%\bin\zoo" x po
 | 
			
		||||
rem unpack config files in system config directory
 | 
			
		||||
cd /D "%installdir%\usr\share\mintty\lang"
 | 
			
		||||
"%installdir%\bin\zoo" xO po
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
:migrate configuration
 | 
			
		||||
 | 
			
		||||
rem migrate old config resource files to new config dir
 | 
			
		||||
if exist "%configdir%" goto configfile
 | 
			
		||||
if not exist "%oldconfigdir%" goto configfile
 | 
			
		||||
if exist "%oldhomedir%\.minttyrc" copy "%oldhomedir%\.minttyrc" "%oldconfigdir%\config" && del "%oldhomedir%\.minttyrc"
 | 
			
		||||
xcopy /E /I /Y "%oldconfigdir%" "%configdir%" && rmdir /S /Q "%oldconfigdir%"
 | 
			
		||||
rmdir "%oldhomedir%\.config"
 | 
			
		||||
:configfile
 | 
			
		||||
if exist "%configdir%\config" goto deloldhome
 | 
			
		||||
if exist "%oldhomedir%\.minttyrc" copy "%oldhomedir%\.minttyrc" "%configdir%\config" && del "%oldhomedir%\.minttyrc"
 | 
			
		||||
:deloldhome
 | 
			
		||||
rmdir "%oldhomedir%"
 | 
			
		||||
rmdir "%oldroot%\home"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
:userconfig
 | 
			
		||||
 | 
			
		||||
rem create user config directory and subfolders
 | 
			
		||||
mkdir "%configdir%\lang"
 | 
			
		||||
mkdir "%configdir%\sounds"
 | 
			
		||||
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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										51
									
								
								makefile
									
									
									
									
									
								
							
							
						
						
									
										51
									
								
								makefile
									
									
									
									
									
								
							@@ -9,20 +9,25 @@
 | 
			
		||||
all:	check pkg
 | 
			
		||||
 | 
			
		||||
# wsltty release
 | 
			
		||||
ver=0.7.6
 | 
			
		||||
ver=1.7.9
 | 
			
		||||
 | 
			
		||||
# mintty release version
 | 
			
		||||
minttyver=2.7.6
 | 
			
		||||
minttyver=2.7.9
 | 
			
		||||
#minttyver=master
 | 
			
		||||
 | 
			
		||||
# wslbridge backend version
 | 
			
		||||
wslbridgever=0.2.1
 | 
			
		||||
wslbridgever=0.2.3
 | 
			
		||||
 | 
			
		||||
# 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-frontend=
 | 
			
		||||
#wslbridge-commit=master
 | 
			
		||||
# use --distro-guid option:
 | 
			
		||||
wslbridge-frontend=wslbridge-frontend
 | 
			
		||||
wslbridge-commit=cb22e3f6f989cefe5b6599d3c04422ded74db664
 | 
			
		||||
 | 
			
		||||
#############################################################################
 | 
			
		||||
# target checking and some defs
 | 
			
		||||
@@ -69,16 +74,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,7 +92,7 @@ mintty-get:
 | 
			
		||||
	unzip -o mintty-$(minttyver).zip
 | 
			
		||||
 | 
			
		||||
mintty-build:
 | 
			
		||||
	cd mintty-$(minttyver)/src; make LDFLAGS="-static -static-libgcc -s"
 | 
			
		||||
	cd mintty-$(minttyver)/src; make LDFLAGS="-static -static-libgcc -s" VERSION_SUFFIX="– wsltty $(ver)"
 | 
			
		||||
	mkdir -p bin
 | 
			
		||||
	cp mintty-$(minttyver)/bin/mintty.exe bin/
 | 
			
		||||
	cp mintty-$(minttyver)/LICENSE LICENSE.mintty
 | 
			
		||||
@@ -97,27 +102,43 @@ 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/
 | 
			
		||||
 | 
			
		||||
cab:
 | 
			
		||||
cop:	ver
 | 
			
		||||
	mkdir -p rel
 | 
			
		||||
	rm -fr rel/wsltty-$(ver)-install.exe
 | 
			
		||||
	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
 | 
			
		||||
	cd rel; iexpress /n wsltty.SED
 | 
			
		||||
 | 
			
		||||
install:	cop installbat
 | 
			
		||||
 | 
			
		||||
installbat:
 | 
			
		||||
	cd rel; cmd /C install
 | 
			
		||||
 | 
			
		||||
ver:
 | 
			
		||||
	echo $(ver) > VERSION
 | 
			
		||||
 | 
			
		||||
pkg:	wslbridge cygwin mintty cab
 | 
			
		||||
 | 
			
		||||
wsltty:	wslbridge cygwin mintty-build cab
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										24
									
								
								makewinx.cfg
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								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,20 +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="dash.exe"
 | 
			
		||||
FILE22="regtool.exe"
 | 
			
		||||
FILE23="config-distros.sh"
 | 
			
		||||
FILE24="configure WSL shortcuts.lnk"
 | 
			
		||||
FILE25="mkshortcut.vbs"
 | 
			
		||||
FILE26="VERSION"
 | 
			
		||||
 | 
			
		||||
[SourceFiles]
 | 
			
		||||
SourceFiles0=.
 | 
			
		||||
@@ -79,4 +85,10 @@ SourceFiles0=.
 | 
			
		||||
%FILE18%=
 | 
			
		||||
%FILE19%=
 | 
			
		||||
%FILE20%=
 | 
			
		||||
%FILE21%=
 | 
			
		||||
%FILE22%=
 | 
			
		||||
%FILE23%=
 | 
			
		||||
%FILE24%=
 | 
			
		||||
%FILE25%=
 | 
			
		||||
%FILE26%=
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										57
									
								
								mkshortcut.vbs
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										57
									
								
								mkshortcut.vbs
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,57 @@
 | 
			
		||||
rem cscript mkshortcut.vbs [/param:arg] /target:link
 | 
			
		||||
 | 
			
		||||
rem %
 | 
			
		||||
rem /arguments:--wsl -h err -o Locale=C -o Charset=UTF-8 /bin/wslbridge -t /bin/bash
 | 
			
		||||
rem ~
 | 
			
		||||
rem /arguments:--wsl -h err -o Locale=C -o Charset=UTF-8 /bin/wslbridge -C~ -t /bin/bash
 | 
			
		||||
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 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:
 | 
			
		||||
rem lnk.TargetPath = Wscript.Arguments.Named("target")
 | 
			
		||||
rem lnk.Arguments = Wscript.Arguments.Named("arguments")
 | 
			
		||||
 | 
			
		||||
lnk.TargetPath = wshell.ExpandEnvironmentStrings("%target%")
 | 
			
		||||
minttyargs = wshell.ExpandEnvironmentStrings("%minttyargs%")
 | 
			
		||||
bridgeargs = wshell.ExpandEnvironmentStrings("%bridgeargs%")
 | 
			
		||||
lnk.Arguments = minttyargs & bridgeargs
 | 
			
		||||
rem wscript.echo "minttyargs: " & minttyargs
 | 
			
		||||
rem wscript.echo lnk.Arguments
 | 
			
		||||
 | 
			
		||||
rem Start in:
 | 
			
		||||
rem lnk.WorkingDirectory = Wscript.Arguments.Named("workingdir")
 | 
			
		||||
lnk.WorkingDirectory = "%USERPROFILE%"
 | 
			
		||||
 | 
			
		||||
rem Icon:
 | 
			
		||||
rem icon = Wscript.Arguments.Named("icon")
 | 
			
		||||
rem rem iconoffset = Wscript.Arguments.Named("iconoffset")
 | 
			
		||||
rem rem icon = icon & ", " & iconoffset
 | 
			
		||||
icon = wshell.ExpandEnvironmentStrings("%icon%")
 | 
			
		||||
rem wscript.echo "icon: " & icon
 | 
			
		||||
lnk.IconLocation = icon
 | 
			
		||||
rem rem lnk.IconLocation = "%LOCALAPPDATA%\lxss\bash.ico"
 | 
			
		||||
rem lnk.IconLocation = "%LOCALAPPDATA%\wsltty\wsl.ico"
 | 
			
		||||
 | 
			
		||||
rem Shorcut key:
 | 
			
		||||
rem lnk.HotKey = "ALT+CTRL+W"
 | 
			
		||||
 | 
			
		||||
rem Run:
 | 
			
		||||
rem lnk.WindowStyle = 1
 | 
			
		||||
 | 
			
		||||
rem Comment:
 | 
			
		||||
rem lnk.IconLocation = Wscript.Arguments.Named("desc")
 | 
			
		||||
rem lnk.Description = "WSLtty"
 | 
			
		||||
 | 
			
		||||
lnk.Save
 | 
			
		||||
wscript.echo "Created " & name
 | 
			
		||||
wscript.echo
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@@ -1,8 +1,6 @@
 | 
			
		||||
@echo off
 | 
			
		||||
 | 
			
		||||
rem See comments in install.bat about changing the installation directory.
 | 
			
		||||
 | 
			
		||||
set installdir=%LOCALAPPDATA%\wsltty
 | 
			
		||||
if "%installdir%" == "" set installdir=%LOCALAPPDATA%\wsltty
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
:shortcuts
 | 
			
		||||
@@ -11,20 +9,27 @@ 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
 | 
			
		||||
rem in any case, at least the config file (home\...) should not be removed
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
:end
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								wsl-l.bat
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								wsl-l.bat
									
									
									
									
									
								
							@@ -1,12 +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
 | 
			
		||||
 | 
			
		||||
"%LOCALAPPDATA%\wsltty\bin\mintty.exe" --wsl -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								wsl.bat
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								wsl.bat
									
									
									
									
									
								
							@@ -1,12 +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
 | 
			
		||||
 | 
			
		||||
"%LOCALAPPDATA%\wsltty\bin\mintty.exe" --wsl -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
										
									
								
								wsltty.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								wsltty.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 11 KiB  | 
							
								
								
									
										13
									
								
								wsl~.bat
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								wsl~.bat
									
									
									
									
									
								
							@@ -1,12 +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
 | 
			
		||||
 | 
			
		||||
"%LOCALAPPDATA%\wsltty\bin\mintty.exe" --wsl -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user