mirror of
				https://github.com/mintty/wsltty.git
				synced 2025-11-04 00:51:52 +00:00 
			
		
		
		
	Compare commits
	
		
			42 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					05ce002fc6 | ||
| 
						 | 
					cc37c6c2d5 | ||
| 
						 | 
					5ef4879be2 | ||
| 
						 | 
					97699c2010 | ||
| 
						 | 
					4316b754da | ||
| 
						 | 
					b8171d61a6 | ||
| 
						 | 
					d7f14146fd | ||
| 
						 | 
					46ee1b4c1c | ||
| 
						 | 
					27a9ce6f42 | ||
| 
						 | 
					e88e60a786 | ||
| 
						 | 
					dfeaf49ae9 | ||
| 
						 | 
					fd81d580d6 | ||
| 
						 | 
					3281c12216 | ||
| 
						 | 
					46ab74d6b4 | ||
| 
						 | 
					a5b546ee4a | ||
| 
						 | 
					26a1abb148 | ||
| 
						 | 
					e7709798c5 | ||
| 
						 | 
					37c5e0dc40 | ||
| 
						 | 
					55c034ec66 | ||
| 
						 | 
					df054073ef | ||
| 
						 | 
					ace39cbd03 | ||
| 
						 | 
					e9b2e108f7 | ||
| 
						 | 
					f66c87cc62 | ||
| 
						 | 
					36e0d9c58a | ||
| 
						 | 
					5db1916332 | ||
| 
						 | 
					8911503a87 | ||
| 
						 | 
					55792acd8d | ||
| 
						 | 
					b8330e46d8 | ||
| 
						 | 
					65553b90ef | ||
| 
						 | 
					2fb7d02091 | ||
| 
						 | 
					4c7eb01b93 | ||
| 
						 | 
					0fd1dd9077 | ||
| 
						 | 
					64c2d04b56 | ||
| 
						 | 
					e283f413ba | ||
| 
						 | 
					4ce4b11094 | ||
| 
						 | 
					84c16fb927 | ||
| 
						 | 
					65bf9273ad | ||
| 
						 | 
					36a39d99de | ||
| 
						 | 
					be761f3aab | ||
| 
						 | 
					c3b062c00b | ||
| 
						 | 
					149b1a6f1a | ||
| 
						 | 
					9fd7a1135b | 
@@ -1,4 +1,4 @@
 | 
			
		||||
mintty is copyright 2008-13 Andy Koppe, 2015-16 Thomas Wolff.
 | 
			
		||||
mintty is copyright 2008-13 Andy Koppe, 2015-18 Thomas Wolff.
 | 
			
		||||
 | 
			
		||||
Licensed under the terms of the GNU General Public License version 3 or later,
 | 
			
		||||
amended with the bundling clause to clarify ambiguous interpretation.
 | 
			
		||||
@@ -26,3 +26,8 @@ The program icon is the apps/utilities-terminal icon from KDE's Oxygen theme,
 | 
			
		||||
retrieved from http://websvn.kde.org/trunk/KDE/kdebase/runtime/pics/oxygen. 
 | 
			
		||||
Thanks to the KDE artists for their sleek design. The Oxygen icons are licensed
 | 
			
		||||
under the terms of the LGPLv3; see LICENSE.Oxygen for details.
 | 
			
		||||
 | 
			
		||||
The colour schemes / theme files bundled with mintty are included 
 | 
			
		||||
under various licenses. The source and license or permission are 
 | 
			
		||||
quoted in the respective theme files.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
The MIT License (MIT)
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2016 Ryan Prichard
 | 
			
		||||
Copyright (c) 2017-2018 Google LLC
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
of this software and associated documentation files (the "Software"), to
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										50
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								README.md
									
									
									
									
									
								
							@@ -15,9 +15,11 @@ WSLtty components
 | 
			
		||||
* 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 ###
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
#### WSLtty installer ####
 | 
			
		||||
### Installation from this repository ###
 | 
			
		||||
 | 
			
		||||
#### WSLtty installer ([Download](https://github.com/mintty/wsltty/releases) standalone installation) ####
 | 
			
		||||
 | 
			
		||||
Run the [installer](https://github.com/mintty/wsltty/releases) to install 
 | 
			
		||||
the components listed above.
 | 
			
		||||
@@ -40,6 +42,33 @@ 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.
 | 
			
		||||
 | 
			
		||||
### Installation with other package management environments ###
 | 
			
		||||
 | 
			
		||||
#### Chocolatey ####
 | 
			
		||||
 | 
			
		||||
If you use the [Chocolatey package manager](https://chocolatey.org/), 
 | 
			
		||||
invoke one of
 | 
			
		||||
<img height=222 align=right src=https://github.com/mintty/wsltty.appx/raw/master/wsltty.appx.png>
 | 
			
		||||
* `choco install wsltty`
 | 
			
		||||
* `choco upgrade wsltty`
 | 
			
		||||
 | 
			
		||||
#### Scoop ####
 | 
			
		||||
 | 
			
		||||
If you use the [Scoop package manager](https://scoop.sh/), 
 | 
			
		||||
* `scoop bucket add extras`
 | 
			
		||||
 | 
			
		||||
then, invoke one of
 | 
			
		||||
* `scoop install wsltty`
 | 
			
		||||
* `scoop update wsltty`
 | 
			
		||||
 | 
			
		||||
#### Windows Appx package ####
 | 
			
		||||
 | 
			
		||||
A Windows Appx package and certificate is available in the [wsltty.appx](https://github.com/mintty/wsltty.appx/) repository.
 | 
			
		||||
 | 
			
		||||
<br clear=all>
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
### Invocation ###
 | 
			
		||||
 | 
			
		||||
WSLtty can be invoked with
 | 
			
		||||
@@ -50,6 +79,8 @@ WSLtty can be invoked with
 | 
			
		||||
Starting the mintty terminal directly from the WSLtty installation location 
 | 
			
		||||
is discouraged because that would bypass essential options.
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
### Configuration ###
 | 
			
		||||
 | 
			
		||||
#### Start Menu and Desktop shortcuts ####
 | 
			
		||||
@@ -75,7 +106,7 @@ WSLtty installs the following scripts into `%LOCALAPPDATA%\Microsoft\WindowsApps
 | 
			
		||||
 | 
			
		||||
* For each installed WSL distribution D, D`.bat` to start in the current folder/directory
 | 
			
		||||
* For each installed WSL distribution D, D`~.bat` to start in the WSL user home
 | 
			
		||||
* `WSL.bat` and `WSL ~.bat` to start the default WSL distribution
 | 
			
		||||
* `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.
 | 
			
		||||
@@ -117,13 +148,18 @@ Note:
 | 
			
		||||
  If you define `HOME` at Windows level, this changes accordingly.
 | 
			
		||||
  Note, however, that the WSL `HOME` is a completely different setting.
 | 
			
		||||
 | 
			
		||||
#### Shell selection ####
 | 
			
		||||
#### Shell selection and Login shell ####
 | 
			
		||||
 | 
			
		||||
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`).
 | 
			
		||||
are also involved.
 | 
			
		||||
 | 
			
		||||
To invoke your favourite shell or launch the shell in login mode, 
 | 
			
		||||
you may append a shell pathname and an optional `-l` parameter 
 | 
			
		||||
to the mintty invocation (in shortcuts, scripts, or context menu entries):
 | 
			
		||||
* `%LOCALAPPDATA%\wsltty\bin\mintty.exe --WSL= --configdir="%APPDATA%\wsltty" /bin/bash -l`
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
### Components and Credits ###
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,24 @@
 | 
			
		||||
#! /bin/sh
 | 
			
		||||
 | 
			
		||||
installdir=${installdir:-'%LOCALAPPDATA%\wsltty'}
 | 
			
		||||
configdir=${configdir:-'%APPDATA%\wsltty'}
 | 
			
		||||
 | 
			
		||||
PATH=/bin:"$PATH"
 | 
			
		||||
 | 
			
		||||
contextmenu=false
 | 
			
		||||
remove=false
 | 
			
		||||
alldistros=true
 | 
			
		||||
config=true
 | 
			
		||||
 | 
			
		||||
case "/$0" in
 | 
			
		||||
*/wsl*)
 | 
			
		||||
  config=false;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
case "$1" in
 | 
			
		||||
-info)
 | 
			
		||||
  config=false
 | 
			
		||||
  shift;;
 | 
			
		||||
-shortcuts-remove)
 | 
			
		||||
  remove=true
 | 
			
		||||
  shift;;
 | 
			
		||||
@@ -75,7 +90,8 @@ echoc () {
 | 
			
		||||
  cmd /c echo $*
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
while read line; do echo "$line"; done <</EOB > mkbat.bat
 | 
			
		||||
if $config
 | 
			
		||||
then while read line; do echo "$line"; done <</EOB > mkbat.bat
 | 
			
		||||
@echo off
 | 
			
		||||
echo Creating %1.bat
 | 
			
		||||
 | 
			
		||||
@@ -83,8 +99,7 @@ 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
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
lxss="/HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Lxss"
 | 
			
		||||
schema="/HKEY_CURRENT_USER/Software/Classes/Local Settings/Software/Microsoft/Windows/CurrentVersion/AppModel/SystemAppData"
 | 
			
		||||
@@ -118,7 +133,7 @@ do
 | 
			
		||||
    	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"
 | 
			
		||||
    	else	icon="$installdir"'\wsl.ico'
 | 
			
		||||
    	fi
 | 
			
		||||
    	root="$basepath/rootfs"
 | 
			
		||||
    else
 | 
			
		||||
@@ -126,8 +141,8 @@ do
 | 
			
		||||
    	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"'
 | 
			
		||||
    minttyargs='--wsl --rootfs="'"$root"'" --configdir="'"$configdir"'" -o Locale=C -o Charset=UTF-8 /bin/wslbridge '
 | 
			
		||||
    minttyargs='--WSL="'"$distro"'" --configdir="'"$configdir"'"'
 | 
			
		||||
    #if [ -z "$launch" ]
 | 
			
		||||
    #then	bridgeargs='-t /bin/bash'
 | 
			
		||||
    #else	bridgeargs='-l "'"$launch"'" -t /bin/bash'
 | 
			
		||||
@@ -139,8 +154,8 @@ do
 | 
			
		||||
  "")	# WSL default installation
 | 
			
		||||
    distro=
 | 
			
		||||
    name=WSL
 | 
			
		||||
    icon="%LOCALAPPDATA%/wsltty/wsl.ico"
 | 
			
		||||
    minttyargs='--WSL= -h err --configdir="%APPDATA%\wsltty"'
 | 
			
		||||
    icon="$installdir"'\wsl.ico'
 | 
			
		||||
    minttyargs='--WSL= --configdir="'"$configdir"'"'
 | 
			
		||||
    bridgeargs='-t'
 | 
			
		||||
 | 
			
		||||
    ok=true;;
 | 
			
		||||
@@ -151,10 +166,10 @@ do
 | 
			
		||||
  echoc "- (launcher $launcher)"
 | 
			
		||||
  echoc "- icon $icon"
 | 
			
		||||
  echoc "- root $root"
 | 
			
		||||
  target='%LOCALAPPDATA%\wsltty\bin\mintty.exe'
 | 
			
		||||
  target="$installdir"'\bin\mintty.exe'
 | 
			
		||||
  bridgeargs=" "
 | 
			
		||||
 | 
			
		||||
  if $ok
 | 
			
		||||
  if $ok && $config
 | 
			
		||||
  then
 | 
			
		||||
    export target minttyargs bridgeargs icon
 | 
			
		||||
 | 
			
		||||
@@ -189,8 +204,8 @@ do
 | 
			
		||||
 | 
			
		||||
        # 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"
 | 
			
		||||
        cmd /C copy "$name.bat" "$installdir"
 | 
			
		||||
        cmd /C copy "$name.bat" "%LOCALAPPDATA%\\Microsoft\\WindowsApps"
 | 
			
		||||
 | 
			
		||||
        # prepare versions to target WSL home directory
 | 
			
		||||
        #bridgeargs="-C~ $bridgeargs"
 | 
			
		||||
@@ -207,8 +222,8 @@ do
 | 
			
		||||
 | 
			
		||||
        # 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"
 | 
			
		||||
        cmd /C copy "$name~.bat" "$installdir"
 | 
			
		||||
        cmd /C copy "$name~.bat" "%LOCALAPPDATA%\\Microsoft\\WindowsApps"
 | 
			
		||||
      fi
 | 
			
		||||
 | 
			
		||||
    fi
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										34
									
								
								install.bat
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								install.bat
									
									
									
									
									
								
							@@ -26,23 +26,43 @@ 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 Terminal.lnk" "%installdir%"
 | 
			
		||||
copy "WSL Terminal %%.lnk" "%installdir%"
 | 
			
		||||
copy wsl.ico "%installdir%"
 | 
			
		||||
copy config-distros.sh "%installdir%"
 | 
			
		||||
copy mkshortcut.vbs "%installdir%"
 | 
			
		||||
 | 
			
		||||
if not exist "%installdir%\bin" goto instbin
 | 
			
		||||
rem move previous programs possibly in use out of the way
 | 
			
		||||
del /Q "%installdir%\bin\*.old"
 | 
			
		||||
ren "%installdir%\bin\cygwin1.dll" cygwin1.dll.old
 | 
			
		||||
ren "%installdir%\bin\cygwin-console-helper.exe" cygwin-console-helper.exe.old
 | 
			
		||||
ren "%installdir%\bin\mintty.exe" mintty.exe.old
 | 
			
		||||
ren "%installdir%\bin\wslbridge.exe" wslbridge.exe.old
 | 
			
		||||
ren "%installdir%\bin\wslbridge-backend" wslbridge-backend.old
 | 
			
		||||
del /Q "%installdir%\bin\*.old"
 | 
			
		||||
 | 
			
		||||
:instbin
 | 
			
		||||
mkdir "%installdir%\bin"
 | 
			
		||||
copy cygwin1.dll "%installdir%\bin"
 | 
			
		||||
copy cygwin-console-helper.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"
 | 
			
		||||
 | 
			
		||||
copy dash.exe "%installdir%\bin"
 | 
			
		||||
copy regtool.exe "%installdir%\bin"
 | 
			
		||||
copy zoo.exe "%installdir%\bin"
 | 
			
		||||
 | 
			
		||||
rem create system config directory and copy config archive
 | 
			
		||||
mkdir "%installdir%\usr\share\mintty\lang"
 | 
			
		||||
copy po.zoo "%installdir%\usr\share\mintty\lang"
 | 
			
		||||
copy lang.zoo "%installdir%\usr\share\mintty\lang"
 | 
			
		||||
mkdir "%installdir%\usr\share\mintty\themes"
 | 
			
		||||
copy themes.zoo "%installdir%\usr\share\mintty\themes"
 | 
			
		||||
mkdir "%installdir%\usr\share\mintty\info"
 | 
			
		||||
copy charnames.txt "%installdir%\usr\share\mintty\info"
 | 
			
		||||
mkdir "%installdir%\usr\share\mintty\icon"
 | 
			
		||||
copy wsl.ico "%installdir%\usr\share\mintty\icon"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
rem create Start Menu Folder
 | 
			
		||||
@@ -57,12 +77,16 @@ 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%"
 | 
			
		||||
copy "WSL Terminal.lnk" "%smf%"
 | 
			
		||||
copy "WSL Terminal %%.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"
 | 
			
		||||
"%installdir%\bin\zoo" xO po
 | 
			
		||||
"%installdir%\bin\zoo" xO lang
 | 
			
		||||
cd /D "%installdir%\usr\share\mintty\themes"
 | 
			
		||||
"%installdir%\bin\zoo" xO themes
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
:migrate configuration
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										160
									
								
								makefile
									
									
									
									
									
								
							
							
						
						
									
										160
									
								
								makefile
									
									
									
									
									
								
							@@ -2,35 +2,64 @@
 | 
			
		||||
# build a wsltty installer package:
 | 
			
		||||
# configure ver=... and minttyver= in this makefile
 | 
			
		||||
# make targets:
 | 
			
		||||
# make [all]	to build a distributable installer (default)
 | 
			
		||||
# make pkg	to build an installer, bypassing the system checks
 | 
			
		||||
# make wsltty	to build an installer using the local copy of mintty
 | 
			
		||||
# make [all]	build a distributable installer (default)
 | 
			
		||||
# make pkg	build an installer, bypassing the system checks
 | 
			
		||||
# make wsltty	build the software, using the local copy of mintty
 | 
			
		||||
 | 
			
		||||
all:	check pkg
 | 
			
		||||
 | 
			
		||||
# wsltty release
 | 
			
		||||
ver=1.8.1
 | 
			
		||||
ver=1.9.5
 | 
			
		||||
 | 
			
		||||
# wsltty appx release - must have 4 parts!
 | 
			
		||||
verx=1.9.5.0
 | 
			
		||||
 | 
			
		||||
# Windows SDK version for appx
 | 
			
		||||
WINSDKKEY=/HKEY_LOCAL_MACHINE/SOFTWARE/WOW6432Node/Microsoft/.NET Framework Platform/Setup/Multi-Targeting Pack
 | 
			
		||||
WINSDKVER=`regtool list '$(WINSDKKEY)' | sed -e '$$ q' -e d`
 | 
			
		||||
 | 
			
		||||
##############################
 | 
			
		||||
# mintty release version
 | 
			
		||||
minttyver=2.8.1
 | 
			
		||||
minttyver=2.9.5
 | 
			
		||||
 | 
			
		||||
# or mintty branch or commit version
 | 
			
		||||
#minttyver=master
 | 
			
		||||
 | 
			
		||||
# wslbridge backend version
 | 
			
		||||
##############################
 | 
			
		||||
# wslbridge binary package; may be overridden below
 | 
			
		||||
wslbridge=wslbridge-package
 | 
			
		||||
wslbridgever=0.2.4
 | 
			
		||||
 | 
			
		||||
# wslbridge frontend version
 | 
			
		||||
# release 0.2.0 does not have cygwin_internal(CW_SYNC_WINENV) yet;
 | 
			
		||||
# therefore using "master" below
 | 
			
		||||
#wslbridge-frontend=wslbridge-frontend
 | 
			
		||||
# release 0.2.1 is updated and complete, no separate frontend build needed:
 | 
			
		||||
wslbridge-frontend=
 | 
			
		||||
# only used if wslbridge-frontend non-empty:
 | 
			
		||||
wslbridge-commit=master
 | 
			
		||||
# or wslbridge branch or commit to build from source;
 | 
			
		||||
# also set wslbridge-commit
 | 
			
		||||
wslbridge=wslbridge-frontend wslbridge-backend
 | 
			
		||||
 | 
			
		||||
# release 0.2.0 does not have cygwin_internal(CW_SYNC_WINENV) yet:
 | 
			
		||||
#wslbridge-commit=master
 | 
			
		||||
 | 
			
		||||
# use --distro-guid option (merged into 0.2.4):
 | 
			
		||||
#wslbridge-frontend=wslbridge-frontend
 | 
			
		||||
#wslbridge-commit=cb22e3f6f989cefe5b6599d3c04422ded74db664
 | 
			
		||||
 | 
			
		||||
# after 0.2.4, from branch login-mode:
 | 
			
		||||
wslbridge-commit=04a060505860915c99bc336dbeb80269771a80b7
 | 
			
		||||
 | 
			
		||||
# after 0.2.4, from branch wslpath:
 | 
			
		||||
wslbridge-commit=29df86d87135caec8424c08f031ce121a3a39ae1
 | 
			
		||||
 | 
			
		||||
# after 0.2.4, merged wslpath branch:
 | 
			
		||||
wslbridge-commit=06fb7acba28d7f37611f3911685af214739895a0
 | 
			
		||||
 | 
			
		||||
# after 0.2.4, with --backend option:
 | 
			
		||||
wslbridge-commit=47b41bec6c32da58ab01de9345087b1a4fd836e3
 | 
			
		||||
 | 
			
		||||
#############################################################################
 | 
			
		||||
# default target
 | 
			
		||||
 | 
			
		||||
all:	all-$(notdir $(CURDIR))
 | 
			
		||||
 | 
			
		||||
all-wsltty:	check pkg
 | 
			
		||||
 | 
			
		||||
all-wsltty.appx:	appx
 | 
			
		||||
 | 
			
		||||
#############################################################################
 | 
			
		||||
# target checking and some defs
 | 
			
		||||
 | 
			
		||||
@@ -52,56 +81,103 @@ wget=curl -R -L --connect-timeout 55 -O
 | 
			
		||||
wgeto=curl -R -L --connect-timeout 55
 | 
			
		||||
 | 
			
		||||
#############################################################################
 | 
			
		||||
# system check;
 | 
			
		||||
# for now, let's enforce Cygwin 32-Bit as the container for wsltty
 | 
			
		||||
# just in case there is a 32-Bit WSL released (-> 32 bit), and to ensure 
 | 
			
		||||
# the path name drag-and-drop adaptation works (-> cygwin, not msys)
 | 
			
		||||
# system check:
 | 
			
		||||
# - ensure the path name drag-and-drop adaptation works (-> Cygwin, not MSYS)
 | 
			
		||||
# - 64 Bit (x86_64) for more stable invocation (avoid fork issues)
 | 
			
		||||
 | 
			
		||||
check:
 | 
			
		||||
	# checking suitable host environment; run `make pkg` to bypass
 | 
			
		||||
	# check cygwin (vs msys) for proper drag-and-drop paths:
 | 
			
		||||
	uname | grep CYGWIN
 | 
			
		||||
	# check 32 bit (vs 64 bit) to ensure 32-Bit Windows support, just in case:
 | 
			
		||||
	# check 32 bit to ensure 32-Bit Windows support, just in case:
 | 
			
		||||
	#uname -m | grep i686
 | 
			
		||||
	# check 64 bit (vs 32 bit) to provide 64-Bit stability support:
 | 
			
		||||
	# check 64 bit to provide 64-Bit stability support:
 | 
			
		||||
	uname -m | grep x86_64
 | 
			
		||||
 | 
			
		||||
#############################################################################
 | 
			
		||||
# patch version information for appx package configuration
 | 
			
		||||
 | 
			
		||||
fix-verx:
 | 
			
		||||
	echo patching $(WINSDKVER) into Launcher config
 | 
			
		||||
	cd Launcher; sed -i~ -e "/<supportedRuntime / s,Version=v[.0-9]*,Version=$(WINSDKVER)," app.config
 | 
			
		||||
	echo patched app.config
 | 
			
		||||
	cd Launcher; sed -i~ -e "/<TargetFrameworkVersion>/ s,v[.0-9]*,$(WINSDKVER)," Launcher.csproj
 | 
			
		||||
	echo patched Launcher.csproj
 | 
			
		||||
	echo patching $(verx) into app config
 | 
			
		||||
	sed -i~ -e '/<Identity / s,Version="[.0-9]*",Version="$(verx)",' AppxManifest.xml
 | 
			
		||||
	echo patched AppxManifest.xml
 | 
			
		||||
 | 
			
		||||
#############################################################################
 | 
			
		||||
# generation
 | 
			
		||||
 | 
			
		||||
wslbridge:	wslbridge-backend $(wslbridge-frontend)
 | 
			
		||||
wslbridge:	$(wslbridge)
 | 
			
		||||
 | 
			
		||||
wslbridge-backend:
 | 
			
		||||
wslbridge-package:
 | 
			
		||||
	$(wget) https://github.com/rprichard/wslbridge/releases/download/$(wslbridgever)/wslbridge-$(wslbridgever)-$(sys).tar.gz
 | 
			
		||||
	tar xvzf wslbridge-$(wslbridgever)-$(sys).tar.gz
 | 
			
		||||
	mkdir -p bin
 | 
			
		||||
	cp wslbridge-$(wslbridgever)-$(sys)/wslbridge* bin/
 | 
			
		||||
	tr -d '\015' < wslbridge-$(wslbridgever)-$(sys)/LICENSE.txt > LICENSE.wslbridge
 | 
			
		||||
 | 
			
		||||
wslbridge-frontend:
 | 
			
		||||
	$(wgeto) https://github.com/rprichard/wslbridge/archive/$(wslbridge-commit).zip -o wslbridge-$(wslbridge-commit).zip
 | 
			
		||||
wslbridge-source:	wslbridge-$(wslbridge-commit).zip
 | 
			
		||||
	unzip -o wslbridge-$(wslbridge-commit).zip
 | 
			
		||||
	tr -d '\015' < wslbridge-$(wslbridge-commit)/LICENSE.txt > LICENSE.wslbridge
 | 
			
		||||
 | 
			
		||||
wslbridge-$(wslbridge-commit).zip:
 | 
			
		||||
	$(wgeto) https://github.com/rprichard/wslbridge/archive/$(wslbridge-commit).zip -o wslbridge-$(wslbridge-commit).zip
 | 
			
		||||
 | 
			
		||||
wslbridge-frontend:	wslbridge-source
 | 
			
		||||
	cd wslbridge-$(wslbridge-commit)/frontend; make
 | 
			
		||||
	strip wslbridge-$(wslbridge-commit)/out/wslbridge.exe
 | 
			
		||||
	mkdir -p bin
 | 
			
		||||
	cp wslbridge-$(wslbridge-commit)/out/wslbridge.exe bin/
 | 
			
		||||
	tr -d '\015' < wslbridge-$(wslbridge-commit)/LICENSE.txt > LICENSE.wslbridge
 | 
			
		||||
 | 
			
		||||
mintty:	mintty-get mintty-build
 | 
			
		||||
wslbridge-backend:	wslbridge-source
 | 
			
		||||
	cd wslbridge-$(wslbridge-commit)/backend; if uname -m | grep x86_64; then cmd /C wsl make; else wslbridge make; fi
 | 
			
		||||
	mkdir -p bin
 | 
			
		||||
	cp wslbridge-$(wslbridge-commit)/out/wslbridge-backend bin/
 | 
			
		||||
 | 
			
		||||
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"
 | 
			
		||||
appxbuild=$(wslbuild) CCOPT=-DWSLTTY_APPX
 | 
			
		||||
wslversion=VERSION_SUFFIX="– wsltty $(ver)" WSLTTY_VERSION="$(ver)"
 | 
			
		||||
appxversion=VERSION_SUFFIX="– wsltty appx $(verx)" WSLTTY_VERSION="$(verx)"
 | 
			
		||||
 | 
			
		||||
mintty-build:
 | 
			
		||||
	# ensure rebuild of version-specific check and message
 | 
			
		||||
	rm -f mintty-$(minttyver)/bin/*/windialog.o
 | 
			
		||||
	# build mintty
 | 
			
		||||
	cd mintty-$(minttyver)/src; make $(wslbuild) $(wslversion)
 | 
			
		||||
	mkdir -p bin
 | 
			
		||||
	cp mintty-$(minttyver)/bin/mintty.exe bin/
 | 
			
		||||
 | 
			
		||||
mintty-build-appx:
 | 
			
		||||
	# ensure rebuild of version-specific check and message
 | 
			
		||||
	rm -f mintty-$(minttyver)/bin/*/windialog.o
 | 
			
		||||
	# build mintty
 | 
			
		||||
	cd mintty-$(minttyver)/src; make $(appxbuild) $(appxversion)
 | 
			
		||||
	mkdir -p bin
 | 
			
		||||
	cp mintty-$(minttyver)/bin/mintty.exe bin/
 | 
			
		||||
 | 
			
		||||
mintty-pkg:
 | 
			
		||||
	cp mintty-$(minttyver)/LICENSE LICENSE.mintty
 | 
			
		||||
	cd mintty-$(minttyver)/lang; zoo a po *.po; mv po.zoo ../../
 | 
			
		||||
	cd mintty-$(minttyver)/lang; zoo a lang *.po; mv lang.zoo ../../
 | 
			
		||||
	cd mintty-$(minttyver)/themes; zoo a themes *[!~]; mv themes.zoo ../../
 | 
			
		||||
	# add charnames.txt to support "Character Info"
 | 
			
		||||
	cd mintty-$(minttyver)/src; sh ./mknames
 | 
			
		||||
	cp mintty-$(minttyver)/src/charnames.txt .
 | 
			
		||||
 | 
			
		||||
mintty-appx:
 | 
			
		||||
	mkdir -p usr/share/mintty
 | 
			
		||||
	cd usr/share/mintty; mkdir -p lang themes info
 | 
			
		||||
	cp mintty-$(minttyver)/lang/*.po usr/share/mintty/lang/
 | 
			
		||||
	cp mintty-$(minttyver)/themes/*[!~] usr/share/mintty/themes/
 | 
			
		||||
	# add charnames.txt to support "Character Info"
 | 
			
		||||
	cd mintty-$(minttyver)/src; sh ./mknames
 | 
			
		||||
	cp mintty-$(minttyver)/src/charnames.txt usr/share/mintty/info/
 | 
			
		||||
 | 
			
		||||
cygwin:
 | 
			
		||||
	mkdir -p bin
 | 
			
		||||
@@ -111,6 +187,11 @@ cygwin:
 | 
			
		||||
	cp /bin/regtool.exe bin/
 | 
			
		||||
	cp /bin/zoo.exe bin/
 | 
			
		||||
 | 
			
		||||
appx-bin:
 | 
			
		||||
	mkdir -p bin
 | 
			
		||||
	cp /bin/cygwin1.dll bin/
 | 
			
		||||
	cp /bin/cygwin-console-helper.exe bin/
 | 
			
		||||
 | 
			
		||||
cop:	ver
 | 
			
		||||
	mkdir -p rel
 | 
			
		||||
	rm -fr rel/wsltty-$(ver)-install.exe
 | 
			
		||||
@@ -121,7 +202,9 @@ cop:	ver
 | 
			
		||||
	cp bin/regtool.exe rel/
 | 
			
		||||
	cp bin/mintty.exe rel/
 | 
			
		||||
	cp bin/zoo.exe rel/
 | 
			
		||||
	cp po.zoo rel/
 | 
			
		||||
	cp lang.zoo rel/
 | 
			
		||||
	cp themes.zoo rel/
 | 
			
		||||
	cp charnames.txt rel/
 | 
			
		||||
	cp bin/wslbridge.exe rel/
 | 
			
		||||
	cp bin/wslbridge-backend rel/
 | 
			
		||||
	cp LICENSE.* rel/
 | 
			
		||||
@@ -144,9 +227,22 @@ installbat:
 | 
			
		||||
ver:
 | 
			
		||||
	echo $(ver) > VERSION
 | 
			
		||||
 | 
			
		||||
pkg:	wslbridge cygwin mintty cab
 | 
			
		||||
mintty:	mintty-get mintty-build
 | 
			
		||||
 | 
			
		||||
wsltty:	wslbridge cygwin mintty-build cab
 | 
			
		||||
mintty-usr:	mintty-get mintty-appx
 | 
			
		||||
 | 
			
		||||
# local wsltty build target:
 | 
			
		||||
wsltty:	wslbridge cygwin mintty-build mintty-pkg
 | 
			
		||||
 | 
			
		||||
# standalone wsltty package build target:
 | 
			
		||||
pkg:	wslbridge cygwin mintty-get mintty-build mintty-pkg cab
 | 
			
		||||
 | 
			
		||||
# appx package contents target:
 | 
			
		||||
wsltty-appx:	wslbridge appx-bin mintty-get mintty-build-appx mintty-appx
 | 
			
		||||
 | 
			
		||||
# appx package target:
 | 
			
		||||
appx:	wsltty-appx fix-verx
 | 
			
		||||
	sh ./build.sh
 | 
			
		||||
 | 
			
		||||
#############################################################################
 | 
			
		||||
# end
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								makewinx.cfg
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								makewinx.cfg
									
									
									
									
									
								
							@@ -41,7 +41,7 @@ FILE5="LICENSE.mintty"
 | 
			
		||||
FILE6="LICENSE.wslbridge"
 | 
			
		||||
FILE7="config-distros.sh"
 | 
			
		||||
FILE8="configure WSL shortcuts.lnk"
 | 
			
		||||
FILE9="mkshortcut.vbs"
 | 
			
		||||
FILE9="charnames.txt"
 | 
			
		||||
FILE10="VERSION"
 | 
			
		||||
FILE11="dash.exe"
 | 
			
		||||
FILE12="regtool.exe"
 | 
			
		||||
@@ -53,7 +53,11 @@ FILE17="add default to context menu.lnk"
 | 
			
		||||
FILE18="remove from context menu.lnk"
 | 
			
		||||
FILE19="wsltty home & help.url"
 | 
			
		||||
FILE20="zoo.exe"
 | 
			
		||||
FILE21="po.zoo"
 | 
			
		||||
FILE21="lang.zoo"
 | 
			
		||||
FILE22="themes.zoo"
 | 
			
		||||
FILE23="WSL Terminal %.lnk"
 | 
			
		||||
FILE24="WSL Terminal.lnk"
 | 
			
		||||
FILE25="mkshortcut.vbs"
 | 
			
		||||
 | 
			
		||||
[SourceFiles]
 | 
			
		||||
SourceFiles0=.
 | 
			
		||||
@@ -81,4 +85,8 @@ SourceFiles0=.
 | 
			
		||||
%FILE19%=
 | 
			
		||||
%FILE20%=
 | 
			
		||||
%FILE21%=
 | 
			
		||||
%FILE22%=
 | 
			
		||||
%FILE23%=
 | 
			
		||||
%FILE24%=
 | 
			
		||||
%FILE25%=
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,15 @@
 | 
			
		||||
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 deprecated: /icon:%LOCALAPPDATA%\lxss\bash.ico
 | 
			
		||||
rem deprecated: %
 | 
			
		||||
rem /arguments:--wsl -o Locale=C -o Charset=UTF-8 /bin/wslbridge -t /bin/bash
 | 
			
		||||
rem deprecated: ~
 | 
			
		||||
rem /arguments:--wsl -o Locale=C -o Charset=UTF-8 /bin/wslbridge -C~ -t /bin/bash
 | 
			
		||||
rem deprecated: -l
 | 
			
		||||
rem /arguments:--wsl -o Locale=C -o Charset=UTF-8 /bin/wslbridge -t /bin/bash -l
 | 
			
		||||
 | 
			
		||||
rem General - Name:
 | 
			
		||||
name = Wscript.Arguments.Named("name") & ".lnk"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										0
									
								
								wsl.ico
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								wsl.ico
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							| 
		 Before Width: | Height: | Size: 472 KiB After Width: | Height: | Size: 472 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								wsltty.png
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								wsltty.png
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB  | 
		Reference in New Issue
	
	Block a user