mirror of
				https://github.com/mintty/wsltty.git
				synced 2025-11-04 00:51:52 +00:00 
			
		
		
		
	Compare commits
	
		
			43 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					ad65aa9931 | ||
| 
						 | 
					c9acce8d76 | ||
| 
						 | 
					1533c27b36 | ||
| 
						 | 
					3e3eaf6e31 | ||
| 
						 | 
					482df018c9 | ||
| 
						 | 
					23fc790c26 | ||
| 
						 | 
					e5c67ecc7c | ||
| 
						 | 
					20075c6378 | ||
| 
						 | 
					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 | 
@@ -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.
 | 
			
		||||
@@ -17,6 +17,8 @@ See LICENSE.PuTTY for PuTTY's copyright notice, contributors, and license.
 | 
			
		||||
The sources of PuTTY 0.60 can be downloaded from
 | 
			
		||||
ftp://ftp.chiark.greenend.org.uk/users/sgtatham/putty-0.60.
 | 
			
		||||
 | 
			
		||||
The minibidi algorithm is under MIT license as quoted in the source file.
 | 
			
		||||
 | 
			
		||||
Sixel code (sixel.c) is relicensed under GPL like mintty with the 
 | 
			
		||||
permission of its author (kmiya@culti); Sixel colour conversion code 
 | 
			
		||||
(sixel_hls.c) is licensed by its author Ross Combs under the license 
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
The MIT License (MIT)
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2016 Ryan Prichard
 | 
			
		||||
Copyright (c) 2017 Google LLC
 | 
			
		||||
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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										57
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										57
									
								
								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,16 +42,45 @@ 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
 | 
			
		||||
* installed Start Menu shortcuts (or Desktop shortcuts if copied there)
 | 
			
		||||
* *.bat scripts
 | 
			
		||||
* *.bat scripts (optionally with WSL command as parameters)
 | 
			
		||||
* 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 essential options.
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
### Configuration ###
 | 
			
		||||
 | 
			
		||||
#### Start Menu and Desktop shortcuts ####
 | 
			
		||||
@@ -90,6 +121,13 @@ 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`.
 | 
			
		||||
 | 
			
		||||
#### Icon ####
 | 
			
		||||
 | 
			
		||||
Wsltty installation and the mintty terminal try to use the icon of the 
 | 
			
		||||
respective WSL distribution. If it cannot be determined, a penguin icon 
 | 
			
		||||
is used as a default. You can replace it with your preferred fallback icon 
 | 
			
		||||
by replacing the icon file `%LOCALAPPDATA%\wsltty\wsl.ico`.
 | 
			
		||||
 | 
			
		||||
#### Mintty settings ####
 | 
			
		||||
 | 
			
		||||
Mintty can maintain its configuration file in various locations, 
 | 
			
		||||
@@ -117,13 +155,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,14 +1,17 @@
 | 
			
		||||
#! /bin/sh
 | 
			
		||||
 | 
			
		||||
PATH=/bin:$PATH
 | 
			
		||||
installdir=${installdir:-'%LOCALAPPDATA%\wsltty'}
 | 
			
		||||
configdir=${configdir:-'%APPDATA%\wsltty'}
 | 
			
		||||
 | 
			
		||||
PATH=/bin:"$PATH"
 | 
			
		||||
 | 
			
		||||
contextmenu=false
 | 
			
		||||
remove=false
 | 
			
		||||
alldistros=true
 | 
			
		||||
config=true
 | 
			
		||||
 | 
			
		||||
case "`basename $0`" in
 | 
			
		||||
wsl*)
 | 
			
		||||
case "/$0" in
 | 
			
		||||
*/wsl*)
 | 
			
		||||
  config=false;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
@@ -94,12 +97,10 @@ 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
 | 
			
		||||
echo %target% -i "%icon%" %minttyargs% %bridgeargs% %%*>> %1.bat
 | 
			
		||||
/EOB
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
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"
 | 
			
		||||
 | 
			
		||||
@@ -132,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
 | 
			
		||||
@@ -140,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'
 | 
			
		||||
@@ -153,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;;
 | 
			
		||||
@@ -165,29 +166,30 @@ do
 | 
			
		||||
  echoc "- (launcher $launcher)"
 | 
			
		||||
  echoc "- icon $icon"
 | 
			
		||||
  echoc "- root $root"
 | 
			
		||||
  target='%LOCALAPPDATA%\wsltty\bin\mintty.exe'
 | 
			
		||||
  bridgeargs=" "
 | 
			
		||||
  target="$installdir"'\bin\mintty.exe'
 | 
			
		||||
  bridgeargs=" "	# deprecated
 | 
			
		||||
 | 
			
		||||
  if $ok && $config
 | 
			
		||||
  then
 | 
			
		||||
    export target minttyargs bridgeargs icon
 | 
			
		||||
    export name target minttyargs bridgeargs icon
 | 
			
		||||
 | 
			
		||||
    if $contextmenu
 | 
			
		||||
    then
 | 
			
		||||
      # context menu entries
 | 
			
		||||
      #cmd /C mkcontext "$name"
 | 
			
		||||
      direckey='HKEY_CURRENT_USER\Software\Classes\Directory'
 | 
			
		||||
      keyname="${name}_Terminal"
 | 
			
		||||
      if $remove
 | 
			
		||||
      then
 | 
			
		||||
        reg delete "$direckey\\shell\\$name" /f
 | 
			
		||||
        reg delete "$direckey\\Background\\shell\\$name" /f
 | 
			
		||||
        reg delete "$direckey\\shell\\$keyname" /f
 | 
			
		||||
        reg delete "$direckey\\Background\\shell\\$keyname" /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
 | 
			
		||||
        reg add "$direckey\\shell\\$keyname" /d "$name Terminal" /f
 | 
			
		||||
        reg add "$direckey\\shell\\$keyname" /v Icon /d "$icon" /f
 | 
			
		||||
        cmd /C reg add "$direckey\\shell\\$keyname\\command" /d "\"$target\" -i \"$icon\" --dir \"%1\" $minttyargs $bridgeargs" /f
 | 
			
		||||
        reg add "$direckey\\Background\\shell\\$keyname" /d "$name Terminal" /f
 | 
			
		||||
        reg add "$direckey\\Background\\shell\\$keyname" /v Icon /d "$icon" /f
 | 
			
		||||
        cmd /C reg add "$direckey\\Background\\shell\\$keyname\\command" /d "\"$target\" -i \"$icon\" $minttyargs $bridgeargs" /f
 | 
			
		||||
      fi
 | 
			
		||||
    else
 | 
			
		||||
      # invocation shortcuts and scripts
 | 
			
		||||
@@ -203,8 +205,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"
 | 
			
		||||
@@ -221,8 +223,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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								install.bat
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								install.bat
									
									
									
									
									
								
							@@ -26,9 +26,12 @@ 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%"
 | 
			
		||||
rem copy "WSL Terminal.lnk" "%installdir%"
 | 
			
		||||
rem copy "WSL Terminal %%.lnk" "%installdir%"
 | 
			
		||||
copy config-distros.sh "%installdir%"
 | 
			
		||||
copy mkshortcut.vbs "%installdir%"
 | 
			
		||||
rem allow persistent customization of default icon:
 | 
			
		||||
if not exist "%installdir%\wsl.ico" copy tux.ico "%installdir%\wsl.ico"
 | 
			
		||||
 | 
			
		||||
if not exist "%installdir%\bin" goto instbin
 | 
			
		||||
rem move previous programs possibly in use out of the way
 | 
			
		||||
@@ -57,6 +60,11 @@ mkdir "%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 tux.ico "%installdir%\usr\share\mintty\icon"
 | 
			
		||||
copy mintty.ico "%installdir%\usr\share\mintty\icon"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
rem create Start Menu Folder
 | 
			
		||||
@@ -71,6 +79,8 @@ 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 copy "WSL Terminal.lnk" "%smf%"
 | 
			
		||||
rem copy "WSL Terminal %%.lnk" "%smf%"
 | 
			
		||||
rem clean up previous installation
 | 
			
		||||
rmdir /S /Q "%smf%\context menu shortcuts"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										115
									
								
								makefile
									
									
									
									
									
								
							
							
						
						
									
										115
									
								
								makefile
									
									
									
									
									
								
							@@ -2,17 +2,24 @@
 | 
			
		||||
# 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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# wsltty release
 | 
			
		||||
ver=1.8.2
 | 
			
		||||
ver=1.9.7
 | 
			
		||||
 | 
			
		||||
# wsltty appx release - must have 4 parts!
 | 
			
		||||
verx=1.9.7.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.2
 | 
			
		||||
minttyver=2.9.7
 | 
			
		||||
 | 
			
		||||
# or mintty branch or commit version
 | 
			
		||||
#minttyver=master
 | 
			
		||||
@@ -35,10 +42,23 @@ wslbridge=wslbridge-frontend wslbridge-backend
 | 
			
		||||
# 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:	check pkg
 | 
			
		||||
all:	all-$(notdir $(CURDIR))
 | 
			
		||||
 | 
			
		||||
all-wsltty:	check pkg
 | 
			
		||||
 | 
			
		||||
all-wsltty.appx:	appx
 | 
			
		||||
 | 
			
		||||
#############################################################################
 | 
			
		||||
# target checking and some defs
 | 
			
		||||
@@ -61,20 +81,32 @@ 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
 | 
			
		||||
 | 
			
		||||
@@ -88,10 +120,12 @@ wslbridge-package:
 | 
			
		||||
	tr -d '\015' < wslbridge-$(wslbridgever)-$(sys)/LICENSE.txt > LICENSE.wslbridge
 | 
			
		||||
 | 
			
		||||
wslbridge-source:	wslbridge-$(wslbridge-commit).zip
 | 
			
		||||
	$(wgeto) https://github.com/rprichard/wslbridge/archive/$(wslbridge-commit).zip -o 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
 | 
			
		||||
@@ -99,26 +133,52 @@ wslbridge-frontend:	wslbridge-source
 | 
			
		||||
	cp wslbridge-$(wslbridge-commit)/out/wslbridge.exe bin/
 | 
			
		||||
 | 
			
		||||
wslbridge-backend:	wslbridge-source
 | 
			
		||||
	cd wslbridge-$(wslbridge-commit)/backend; wslbridge make
 | 
			
		||||
	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:	mintty-get mintty-build
 | 
			
		||||
 | 
			
		||||
mintty-get:
 | 
			
		||||
	$(wgeto) https://github.com/mintty/mintty/archive/$(minttyver).zip -o mintty-$(minttyver).zip
 | 
			
		||||
	unzip -o mintty-$(minttyver).zip
 | 
			
		||||
	cp mintty-$(minttyver)/icon/terminal.ico mintty.ico
 | 
			
		||||
 | 
			
		||||
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 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
 | 
			
		||||
@@ -128,6 +188,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
 | 
			
		||||
@@ -140,6 +205,7 @@ cop:	ver
 | 
			
		||||
	cp bin/zoo.exe 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/
 | 
			
		||||
@@ -162,9 +228,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
 | 
			
		||||
 
 | 
			
		||||
@@ -41,13 +41,13 @@ 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"
 | 
			
		||||
FILE13="install.bat"
 | 
			
		||||
FILE14="uninstall.bat"
 | 
			
		||||
FILE15="wsl.ico"
 | 
			
		||||
FILE15="tux.ico"
 | 
			
		||||
FILE16="add to context menu.lnk"
 | 
			
		||||
FILE17="add default to context menu.lnk"
 | 
			
		||||
FILE18="remove from context menu.lnk"
 | 
			
		||||
@@ -55,6 +55,8 @@ FILE19="wsltty home & help.url"
 | 
			
		||||
FILE20="zoo.exe"
 | 
			
		||||
FILE21="lang.zoo"
 | 
			
		||||
FILE22="themes.zoo"
 | 
			
		||||
FILE23="mkshortcut.vbs"
 | 
			
		||||
FILE24="mintty.ico"
 | 
			
		||||
 | 
			
		||||
[SourceFiles]
 | 
			
		||||
SourceFiles0=.
 | 
			
		||||
@@ -83,4 +85,6 @@ SourceFiles0=.
 | 
			
		||||
%FILE20%=
 | 
			
		||||
%FILE21%=
 | 
			
		||||
%FILE22%=
 | 
			
		||||
%FILE23%=
 | 
			
		||||
%FILE24%=
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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"
 | 
			
		||||
@@ -24,7 +24,7 @@ rem lnk.Arguments = Wscript.Arguments.Named("arguments")
 | 
			
		||||
lnk.TargetPath = wshell.ExpandEnvironmentStrings("%target%")
 | 
			
		||||
minttyargs = wshell.ExpandEnvironmentStrings("%minttyargs%")
 | 
			
		||||
bridgeargs = wshell.ExpandEnvironmentStrings("%bridgeargs%")
 | 
			
		||||
lnk.Arguments = minttyargs & bridgeargs
 | 
			
		||||
lnk.Arguments = minttyargs & " " & bridgeargs
 | 
			
		||||
rem wscript.echo "minttyargs: " & minttyargs
 | 
			
		||||
rem wscript.echo lnk.Arguments
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										0
									
								
								wsl.ico → tux.ico
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								wsl.ico → tux.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