mirror of
				https://github.com/mintty/wsltty.git
				synced 2025-11-04 00:51:52 +00:00 
			
		
		
		
	Compare commits
	
		
			34 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					ec0b5560ee | ||
| 
						 | 
					2cd1819d8b | ||
| 
						 | 
					bbe0dd4e56 | ||
| 
						 | 
					39151ffe8e | ||
| 
						 | 
					25460e4bbd | ||
| 
						 | 
					a7f1720a22 | ||
| 
						 | 
					92210d81d7 | ||
| 
						 | 
					c0094d675f | ||
| 
						 | 
					e863c572ef | ||
| 
						 | 
					92edf8b257 | ||
| 
						 | 
					d09d08d518 | ||
| 
						 | 
					7074ff02b9 | ||
| 
						 | 
					4e0bbddcc0 | ||
| 
						 | 
					68e11e5775 | ||
| 
						 | 
					36c134820b | ||
| 
						 | 
					ef2ab5f6e4 | ||
| 
						 | 
					ee57a229b0 | ||
| 
						 | 
					3c7d8f3a18 | ||
| 
						 | 
					937058f703 | ||
| 
						 | 
					52b6a57e09 | ||
| 
						 | 
					d7b4840c92 | ||
| 
						 | 
					05a439b5b0 | ||
| 
						 | 
					a7b8792e76 | ||
| 
						 | 
					440fbec6c7 | ||
| 
						 | 
					49d7a79941 | ||
| 
						 | 
					6261ec43ec | ||
| 
						 | 
					033d9aceb2 | ||
| 
						 | 
					be4e7fef44 | ||
| 
						 | 
					a2df28017b | ||
| 
						 | 
					09972471b9 | ||
| 
						 | 
					c13340b328 | ||
| 
						 | 
					8d7ffa75bb | ||
| 
						 | 
					305fd0f273 | ||
| 
						 | 
					fb1bf601e9 | 
							
								
								
									
										40
									
								
								0012-get-vmid-from-registry.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								0012-get-vmid-from-registry.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
--- wslbridge2/src/wslbridge2.cpp	2024-10-10 20:20:21.931891800 +0000
 | 
			
		||||
+++ wslbridge2-0.12/src/wslbridge2.cpp	2024-10-08 09:31:35.954145800 +0000
 | 
			
		||||
@@ -228,6 +228,26 @@ static void start_dummy(std::wstring wsl
 | 
			
		||||
     CloseHandle(pi.hThread);
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
+bool GetIdFromRegistry(GUID *guid) {
 | 
			
		||||
+    HKEY hKeyRoot = HKEY_LOCAL_MACHINE;
 | 
			
		||||
+    std::wstring subKey = L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\HostComputeService\\VolatileStore\\ComputeSystem";
 | 
			
		||||
+    HKEY hKey;
 | 
			
		||||
+    if (RegOpenKeyEx(hKeyRoot, subKey.c_str(), 0, KEY_READ, &hKey) == ERROR_SUCCESS) {
 | 
			
		||||
+        DWORD index = 0;
 | 
			
		||||
+        WCHAR keyName[256];
 | 
			
		||||
+        DWORD keyNameSize = sizeof(keyName) / sizeof(keyName[0]);
 | 
			
		||||
+
 | 
			
		||||
+        while (RegEnumKeyEx(hKey, index, keyName, &keyNameSize, nullptr, nullptr, nullptr, nullptr) == ERROR_SUCCESS) {
 | 
			
		||||
+            RegCloseKey(hKey);
 | 
			
		||||
+            std::wstring id = L"{" + std::wstring(keyName) + L"}";
 | 
			
		||||
+            return IIDFromString(id.c_str(), guid) == S_OK;
 | 
			
		||||
+        }
 | 
			
		||||
+        RegCloseKey(hKey);
 | 
			
		||||
+    }
 | 
			
		||||
+    return false;
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
+
 | 
			
		||||
 int main(int argc, char *argv[])
 | 
			
		||||
 {
 | 
			
		||||
     /* Minimum requirement Windows 10 build 17763 aka. version 1809 */
 | 
			
		||||
@@ -387,8 +407,8 @@ int main(int argc, char *argv[])
 | 
			
		||||
         if (LiftedWSLVersion)
 | 
			
		||||
             start_dummy(wslPath, wslCmdLine, distroName, debugMode);
 | 
			
		||||
 
 | 
			
		||||
-        const HRESULT hRes = GetVmId(&DistroId, &VmId, LiftedWSLVersion);
 | 
			
		||||
-        if (hRes != 0)
 | 
			
		||||
+        const bool hRes = GetIdFromRegistry(&VmId);
 | 
			
		||||
+        if (!hRes)
 | 
			
		||||
             fatal("GetVmId: %s\n", GetErrorMessage(hRes).c_str());
 | 
			
		||||
 
 | 
			
		||||
         inputSock = win_vsock_create();
 | 
			
		||||
							
								
								
									
										83
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										83
									
								
								README.md
									
									
									
									
									
								
							@@ -18,17 +18,55 @@ WSLtty components
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
### Requirements ###
 | 
			
		||||
### Launching WSL ###
 | 
			
		||||
 | 
			
		||||
Wsltty does not seem to work with WSL V2 mode since release 2.0.0 (#343).
 | 
			
		||||
As a workaround until a solution in the wslbridge gateway, it is suggested 
 | 
			
		||||
to install [release 1.3.17](https://github.com/microsoft/WSL/releases/tag/1.3.17); 
 | 
			
		||||
maybe uninstall WSL first, see [issue 343 comment](https://github.com/mintty/wsltty/issues/343#issuecomment-1818367512).
 | 
			
		||||
Another remedy could be to configure your WSL distributions to run in WSL V1 mode, for example:
 | 
			
		||||
`wsl --set-version Ubuntu 1`.
 | 
			
		||||
Since wsltty 3.8.0, mintty launches WSL using the native Windows launcher 
 | 
			
		||||
gateway `wsl.exe` by default.
 | 
			
		||||
Proper display in certain cases depends on an up-to-date version of the 
 | 
			
		||||
Windows conpty layer. Its version currently deployed with Windows has 
 | 
			
		||||
unfortunately still some problems. There are two ways to fix this:
 | 
			
		||||
* Revert to the previous launching method for now. The problem is that 
 | 
			
		||||
  this way of launching WSL does not appear to work on some users’ systems.
 | 
			
		||||
  For this solution, configure this in config file `%APPDATA%/wsltty/config`.
 | 
			
		||||
  `WSLbridge=2`
 | 
			
		||||
* Update the Windows conpty layer manually, by replacing 
 | 
			
		||||
  `%SYSTEMROOT%/System32/conhost.exe` following the instructions in the 
 | 
			
		||||
  [mintty wiki, section Interaction with WSL](https://github.com/mintty/mintty/wiki/Tips#interaction-with-wsl-and-other-windows-programs).
 | 
			
		||||
 | 
			
		||||
#### Launcher and display interworking background ####
 | 
			
		||||
 | 
			
		||||
The approach to use wsl.exe directly used to fail because the 
 | 
			
		||||
_conhost_ layer hooked into the workflow used to obstruct transparent 
 | 
			
		||||
terminal operation in multiple ways.
 | 
			
		||||
 | 
			
		||||
The _conhost_ layer has meanwhile been modernised, including the _conpty_ 
 | 
			
		||||
layer, and its enforced detour through the Windows console API has 
 | 
			
		||||
been dropped, in the course of the Windows Terminal project.
 | 
			
		||||
The new _conhost_, however, has not yet been deployed with Windows 
 | 
			
		||||
(as of summer 2025) and will probably not be deployed with Windows 10 anymore.
 | 
			
		||||
So in order to get fully transparent terminal interaction between WSL 
 | 
			
		||||
and wsltty, the updated _conhost_ needs to be patched into Windows 
 | 
			
		||||
manually, following the instructions linked above, 
 | 
			
		||||
to patch OpenConsole into your Windows as conhost replacement.
 | 
			
		||||
 | 
			
		||||
#### The wslbridge approach ####
 | 
			
		||||
 | 
			
		||||
To connect to WSL, wsltty used wslbridge2, which uses undocumented 
 | 
			
		||||
Windows APIs that have been changed various times, so wslbridge2 needed 
 | 
			
		||||
to catch up with incompatible changes, particularly to support WSL V2.
 | 
			
		||||
(See e.g. issue #343; to work with WSL V2, wsltty 2.0.0 needed a WSL update 
 | 
			
		||||
to [release 1.3.17](https://github.com/microsoft/WSL/releases/tag/1.3.17).)
 | 
			
		||||
 | 
			
		||||
Since release 3.0.5, WSLtty requires Windows version 1809 (the November 2018 release).
 | 
			
		||||
 | 
			
		||||
By end of 2024, wsltty works again with recent updates of the WSL subsystem.
 | 
			
		||||
 | 
			
		||||
Configuration option `WSLbridge=2` switches back to the previous 
 | 
			
		||||
wslbridge launching approach; the wslbridge2 gateway is still deployed 
 | 
			
		||||
with wsltty for that matter. (If for a very old Windows 10 version you 
 | 
			
		||||
still need the original wslbridge gateway, set `WSLbridge=1` and 
 | 
			
		||||
deploy it manually.)
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
### Installation from this repository ###
 | 
			
		||||
@@ -56,6 +94,13 @@ Portable installation does not install any start menu or desktop shortcuts
 | 
			
		||||
and no context menu entries. It creates a shortcut in the selected 
 | 
			
		||||
portable installation folder to start the default WSL distribution.
 | 
			
		||||
 | 
			
		||||
Note: For an update installation, either the parent directory or the target 
 | 
			
		||||
directory itself can be selected.
 | 
			
		||||
 | 
			
		||||
Note: If you rename or move the installation directory, the icon of the 
 | 
			
		||||
“WSL Terminal Portable” shortcut will not work anymore; re-run the 
 | 
			
		||||
install-portable.bat script in the installation folder to refresh it.
 | 
			
		||||
 | 
			
		||||
#### Installation from archive ####
 | 
			
		||||
 | 
			
		||||
In case a local anti-virus guard barfs about the wsltty installer, the 
 | 
			
		||||
@@ -106,14 +151,6 @@ invoke one of
 | 
			
		||||
* `winget install wsltty`
 | 
			
		||||
* `winget upgrade wsltty`
 | 
			
		||||
 | 
			
		||||
#### Chocolatey ####
 | 
			
		||||
 | 
			
		||||
([Check package](https://community.chocolatey.org/packages/wsltty))
 | 
			
		||||
If you use the [Chocolatey package manager](https://chocolatey.org/), 
 | 
			
		||||
invoke one of
 | 
			
		||||
* `choco install wsltty`
 | 
			
		||||
* `choco upgrade wsltty`
 | 
			
		||||
 | 
			
		||||
#### Scoop ####
 | 
			
		||||
 | 
			
		||||
([Check package](https://scoop.sh/#/apps?q=wsltty))
 | 
			
		||||
@@ -124,6 +161,14 @@ then, invoke one of
 | 
			
		||||
* `scoop install wsltty`
 | 
			
		||||
* `scoop update wsltty`
 | 
			
		||||
 | 
			
		||||
#### Chocolatey ####
 | 
			
		||||
 | 
			
		||||
([Check package](https://community.chocolatey.org/packages/wsltty))
 | 
			
		||||
If you use the [Chocolatey package manager](https://chocolatey.org/), 
 | 
			
		||||
invoke one of
 | 
			
		||||
* `choco install wsltty`
 | 
			
		||||
* `choco upgrade wsltty`
 | 
			
		||||
 | 
			
		||||
### Uninstallation ###
 | 
			
		||||
 | 
			
		||||
To uninstall wsltty desktop, start menu, and context menu integration:
 | 
			
		||||
@@ -210,6 +255,8 @@ WSLtty installs the following scripts into `%LOCALAPPDATA%\Microsoft\WindowsApps
 | 
			
		||||
* For each installed WSL distribution, e.g. Ubuntu, a command script like `Ubuntu~.bat` to start in the WSL user home
 | 
			
		||||
* `WSL.bat` and `WSL~.bat` to start the default WSL distribution
 | 
			
		||||
 | 
			
		||||
The scripts accept an optional invocation command (since 3.7.8).
 | 
			
		||||
 | 
			
		||||
Given that `%LOCALAPPDATA%\Microsoft\WindowsApps` is in your PATH,
 | 
			
		||||
the scripts can be invoked from cmd.exe, PowerShell, or via WIN+R.
 | 
			
		||||
 | 
			
		||||
@@ -322,13 +369,13 @@ the [Mintty manual page](http://mintty.github.io/mintty.1.html),
 | 
			
		||||
including a [Hints and Tips page](https://github.com/mintty/mintty/wiki/Tips).
 | 
			
		||||
 | 
			
		||||
It is based on [Cygwin](http://cygwin.com) 
 | 
			
		||||
and includes its runtime library ([sources](http://mirrors.dotsrc.org/cygwin/x86/release/cygwin)).
 | 
			
		||||
and includes its runtime library ([sources](http://mirrors.dotsrc.org/cygwin/x86_64/release/cygwin)).
 | 
			
		||||
 | 
			
		||||
For interacting with WSL, [wslbridge](https://github.com/rprichard/wslbridge)
 | 
			
		||||
used to be the gateway prototype.
 | 
			
		||||
Many thanks for this enabling gateway go to Ryan Prichard.
 | 
			
		||||
 | 
			
		||||
For recent changes in WSL, particularly WSL mode V2, the new gateway 
 | 
			
		||||
[wslbridge2](https://github.com/Biswa96/wslbridge2) is used instead.
 | 
			
		||||
For later changes in WSL, particularly WSL mode V2, the new gateway 
 | 
			
		||||
[wslbridge2](https://github.com/Biswa96/wslbridge2) was used instead.
 | 
			
		||||
Many thanks for this further development and maintenance go to Biswapriyo Nath.
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -155,17 +155,40 @@ regtool () {
 | 
			
		||||
}
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if $config
 | 
			
		||||
then while read line; do echo "$line"; done <</EOB > mkbat.bat
 | 
			
		||||
@echo off
 | 
			
		||||
echo Creating %1.bat
 | 
			
		||||
 | 
			
		||||
echo @echo off> %1.bat
 | 
			
		||||
echo rem Start mintty terminal for WSL package %name% in current directory>> %1.bat
 | 
			
		||||
echo %target% -i "%icon%" %minttyargs% %bridgeargs% %%*>> %1.bat
 | 
			
		||||
/EOB
 | 
			
		||||
fi
 | 
			
		||||
mkbat () {
 | 
			
		||||
	echo Creating "$1.bat"
 | 
			
		||||
	while read line; do echo "$line"; done <<-\/EOB > "$1".bat
 | 
			
		||||
	@echo off
 | 
			
		||||
	rem Start mintty terminal for WSL
 | 
			
		||||
	
 | 
			
		||||
	rem get basename of this script file,
 | 
			
		||||
	rem use it to select WSL distribution and homedir flag
 | 
			
		||||
	set dist=%~n0
 | 
			
		||||
	
 | 
			
		||||
	rem start in current directory
 | 
			
		||||
	set cdir=
 | 
			
		||||
	rem if script name ends with ~, extract WSL distribution and param -~
 | 
			
		||||
	if "%dist:~-1%" == "~" set cdir=-~ && set dist=%dist:~0,-1%
 | 
			
		||||
	rem map WSL default distribution
 | 
			
		||||
	if "%dist%" == "WSL" set dist=
 | 
			
		||||
	
 | 
			
		||||
	rem check if we have an explicit -d DIST parameter
 | 
			
		||||
	if "%1" == "-d" set dist=%2 && shift && shift
 | 
			
		||||
	
 | 
			
		||||
	chcp 65001 > nul:
 | 
			
		||||
	
 | 
			
		||||
	if "%1" == "" goto login
 | 
			
		||||
	
 | 
			
		||||
	:cmd
 | 
			
		||||
	"%LOCALAPPDATA%/wsltty/bin/mintty.exe" -i "%LOCALAPPDATA%/wsltty/wsl.ico" --WSL="%dist%" --configdir="%APPDATA%/wsltty" %cdir% %*
 | 
			
		||||
	goto end
 | 
			
		||||
	
 | 
			
		||||
	:login
 | 
			
		||||
	"%LOCALAPPDATA%/wsltty/bin/mintty.exe" -i "%LOCALAPPDATA%/wsltty/wsl.ico" --WSL="%dist%" --configdir="%APPDATA%/wsltty" %cdir% -
 | 
			
		||||
	
 | 
			
		||||
	:end
 | 
			
		||||
	/EOB
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if $custominst && $config && ! $remove
 | 
			
		||||
then
 | 
			
		||||
@@ -302,7 +325,7 @@ config () {
 | 
			
		||||
 | 
			
		||||
  if $ok && ! $remove && [ -n "$distro" ]
 | 
			
		||||
  then	# fix #163: backend missing +x with certain mount options
 | 
			
		||||
	echo Setting +x wslbridge2 backends for distro "'$distro'"
 | 
			
		||||
	echo Setting +x wslbridge2 backend for distro "'$distro'"
 | 
			
		||||
	(cd "$INSTDIR"; cd bin; PATH="${WINDIR}/Sysnative:${PATH}" wsl.exe -d "$distro" chmod +x wslbridge2-backend)
 | 
			
		||||
#	(cd "$LOCALAPPDATA/wsltty/bin"; wsl.exe -d "$distro" chmod +x wslbridge2-backend)
 | 
			
		||||
#	(cd ... ; "$SYSTEMROOT/System32/bash.exe" "$guid" -c chmod +x wslbridge2-backend)
 | 
			
		||||
@@ -366,7 +389,8 @@ config () {
 | 
			
		||||
        copy "$name Terminal %.lnk" "$APPDATA\\Microsoft\\Windows\\Start Menu\\Programs\\WSLtty"
 | 
			
		||||
 | 
			
		||||
        # launch script in . -> WSLtty home, WindowsApps launch folder
 | 
			
		||||
        cmd /C mkbat.bat "$name"
 | 
			
		||||
        #cmd /C mkbat.bat "$name"
 | 
			
		||||
        mkbat "$name"
 | 
			
		||||
        copy "$name.bat" "$LOCALAPPDATA\\Microsoft\\WindowsApps"
 | 
			
		||||
 | 
			
		||||
        # store backup copies in installation dir
 | 
			
		||||
@@ -402,7 +426,8 @@ config () {
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        # launch script in ~ -> WSLtty home, WindowsApps launch folder
 | 
			
		||||
        cmd /C mkbat.bat "$name~"
 | 
			
		||||
        #cmd /C mkbat.bat "$name~"
 | 
			
		||||
        mkbat "$name~"
 | 
			
		||||
        copy "$name~.bat" "$LOCALAPPDATA\\Microsoft\\WindowsApps"
 | 
			
		||||
 | 
			
		||||
        # store backup copies in installation dir
 | 
			
		||||
 
 | 
			
		||||
@@ -1,27 +1,54 @@
 | 
			
		||||
@echo off
 | 
			
		||||
 | 
			
		||||
chcp 65001 > nul
 | 
			
		||||
 | 
			
		||||
if not exist "WSL Terminal Portable.lnk" goto install
 | 
			
		||||
echo Rebuilding WSL Terminal Portable shortcut
 | 
			
		||||
set instdir=%~dp0
 | 
			
		||||
goto shortcut
 | 
			
		||||
 | 
			
		||||
:install
 | 
			
		||||
 | 
			
		||||
echo Installing WSL Terminal Portable
 | 
			
		||||
echo Select target folder in popup dialog ...
 | 
			
		||||
 | 
			
		||||
set sel="Select folder to place installation of portable wsltty"
 | 
			
		||||
 | 
			
		||||
for /f "usebackq delims=" %%f in (`powershell "(new-object -COM Shell.Application).BrowseForFolder(0, '%sel%', 0, 0).self.path"`) do set f=%%f
 | 
			
		||||
set instdir=%f%\wsltty
 | 
			
		||||
if exist %f%\LICENSE.mintty set instdir=%f%
 | 
			
		||||
 | 
			
		||||
if "%f%"=="" (
 | 
			
		||||
	echo no installation
 | 
			
		||||
	echo No installation selected
 | 
			
		||||
	pause
 | 
			
		||||
	exit
 | 
			
		||||
) else if not exist "%f%" (
 | 
			
		||||
	echo invalid installation folder %instdir%
 | 
			
		||||
	echo Invalid installation folder %instdir%
 | 
			
		||||
	pause
 | 
			
		||||
	exit
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
rem call main installation
 | 
			
		||||
call install "%instdir%" "%instdir%" /P
 | 
			
		||||
rem this already changes into "%instdir%"
 | 
			
		||||
 | 
			
		||||
rem copy additional portable installation files
 | 
			
		||||
rem do this after call install as that deletes previous .bat files
 | 
			
		||||
copy "%~dp0\install-portable.bat" .
 | 
			
		||||
dir "%instdir%"\install-portable.bat
 | 
			
		||||
 | 
			
		||||
:shortcut
 | 
			
		||||
 | 
			
		||||
rem create shortcut
 | 
			
		||||
cd /D "%instdir%"
 | 
			
		||||
rem set drive-relative path for shortcut working directory and icon
 | 
			
		||||
set instpath=%instdir:~2%
 | 
			
		||||
set target=%%COMSPEC%%
 | 
			
		||||
set minttyargs=/C bin\mintty.exe --WSL= --icon=/wsl.ico --configdir=. -~
 | 
			
		||||
set bridgeargs= -
 | 
			
		||||
set wdir=%instpath%
 | 
			
		||||
rem set wdir=%instpath%
 | 
			
		||||
rem let mkshortcut set working directory to empty:
 | 
			
		||||
set wdir=.
 | 
			
		||||
set icon=%instpath%\wsl.ico
 | 
			
		||||
cscript /nologo mkshortcut.vbs "/name:WSL Terminal Portable"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										35
									
								
								install.bat
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								install.bat
									
									
									
									
									
								
							@@ -12,9 +12,18 @@ call dequote oldroot
 | 
			
		||||
call dequote oldhomedir
 | 
			
		||||
set oldconfigdir="%oldhomedir%\.config\mintty"
 | 
			
		||||
call dequote oldconfigdir
 | 
			
		||||
if not "%1" == "" set refinstalldir=%1 && set installdir=%1
 | 
			
		||||
if not "%2" == "" set refconfigdir=%2 && set configdir=%2
 | 
			
		||||
 | 
			
		||||
rem override installdir, configdir if parameters given
 | 
			
		||||
set arg1=%1
 | 
			
		||||
call dequote arg1
 | 
			
		||||
if "%arg1%" == "%%arg1%%" goto deploy
 | 
			
		||||
set refinstalldir=%arg1%
 | 
			
		||||
set installdir=%arg1%
 | 
			
		||||
set arg2=%2
 | 
			
		||||
call dequote arg2
 | 
			
		||||
if "%arg2%" == "%%arg2%%" goto deploy
 | 
			
		||||
set refconfigdir=%arg2%
 | 
			
		||||
set configdir=%arg2%
 | 
			
		||||
 | 
			
		||||
:deploy
 | 
			
		||||
 | 
			
		||||
@@ -86,6 +95,8 @@ copy mintty.ico "%installdir%\usr\share\mintty\icon"
 | 
			
		||||
mkdir "%installdir%\usr\share\mintty\emojis" 2> nul:
 | 
			
		||||
copy getemojis "%installdir%\usr\share\mintty\emojis" 2> nul:
 | 
			
		||||
copy getflags "%installdir%\usr\share\mintty\emojis" 2> nul:
 | 
			
		||||
mkdir "%installdir%\usr\share\terminfo" 2> nul:
 | 
			
		||||
copy terminfo.zoo "%installdir%\usr\share\terminfo"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
rem create Start Menu Folder
 | 
			
		||||
@@ -113,6 +124,8 @@ cd /D "%installdir%\usr\share\mintty\themes"
 | 
			
		||||
"%installdir%\bin\zoo" xO themes
 | 
			
		||||
cd /D "%installdir%\usr\share\mintty\sounds"
 | 
			
		||||
"%installdir%\bin\zoo" xO sounds
 | 
			
		||||
cd /D "%installdir%\usr\share\terminfo"
 | 
			
		||||
"%installdir%\bin\zoo" xO terminfo
 | 
			
		||||
cd /D "%installdir%"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -142,6 +155,24 @@ mkdir "%configdir%\emojis" 2> nul:
 | 
			
		||||
copy "%installdir%\usr\share\mintty\emojis\getemojis" "%configdir%\emojis" 2> nul:
 | 
			
		||||
copy "%installdir%\usr\share\mintty\emojis\getflags" "%configdir%\emojis" 2> nul:
 | 
			
		||||
 | 
			
		||||
goto noetc
 | 
			
		||||
rem 3.8.0.2: create global config file for troubleshooting
 | 
			
		||||
mkdir "%installdir%\etc" 2> nul:
 | 
			
		||||
echo ###########################>"%installdir%\etc\minttyrc"
 | 
			
		||||
echo # Troubleshooting>>"%installdir%\etc\minttyrc"
 | 
			
		||||
echo # To work around a pty interworking issue between wsl and cygwin,>>"%installdir%\etc\minttyrc"
 | 
			
		||||
echo # we need to apply this configuration for now:>>"%installdir%\etc\minttyrc"
 | 
			
		||||
echo Baud=999999>>"%installdir%\etc\minttyrc"
 | 
			
		||||
goto etcok
 | 
			
		||||
 | 
			
		||||
:noetc
 | 
			
		||||
rem 3.8.0.3: remove previous troubleshooting patch
 | 
			
		||||
if exist "%installdir%\etc\minttyrc" del "%installdir%\etc\minttyrc"
 | 
			
		||||
if exist "%installdir%\etc" rmdir "%installdir%\etc"
 | 
			
		||||
 | 
			
		||||
:etcok
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
rem create config file if it does not yet exist
 | 
			
		||||
if exist "%configdir%\config" goto appconfig
 | 
			
		||||
echo # To use common configuration in %%APPDATA%%\mintty, simply remove this file>"%configdir%\config"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										110
									
								
								makefile
									
									
									
									
									
								
							
							
						
						
									
										110
									
								
								makefile
									
									
									
									
									
								
							@@ -9,36 +9,23 @@
 | 
			
		||||
# make wsltty	build the software, using the local copy of mintty
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# wsltty release
 | 
			
		||||
ver=3.7.3
 | 
			
		||||
##############################
 | 
			
		||||
# mintty and wsltty release versions
 | 
			
		||||
wslttyver=3.8.0.3
 | 
			
		||||
 | 
			
		||||
# wsltty appx release - must have 4 parts!
 | 
			
		||||
verx=3.7.3.1
 | 
			
		||||
minttyver=3.8.0
 | 
			
		||||
 | 
			
		||||
minrepo=git@github.com:mintty/mintty.git
 | 
			
		||||
 | 
			
		||||
##############################
 | 
			
		||||
# mintty release version
 | 
			
		||||
 | 
			
		||||
minttyver=3.7.3
 | 
			
		||||
# wsltty appx release (obsolete) - must have 4 parts!
 | 
			
		||||
appxver=$(wslttyver).1
 | 
			
		||||
 | 
			
		||||
##############################
 | 
			
		||||
 | 
			
		||||
# wslbridge2 repository
 | 
			
		||||
# wslbridge2 repository and release version
 | 
			
		||||
repo=Biswa96/wslbridge2
 | 
			
		||||
 | 
			
		||||
# wslbridge2 master release version
 | 
			
		||||
wslbridgever=0.12
 | 
			
		||||
 | 
			
		||||
# wslbridge2 latest version
 | 
			
		||||
#archive=master
 | 
			
		||||
#wslbridgedir=wslbridge2-$(archive)
 | 
			
		||||
 | 
			
		||||
# wslbridge2 branch or commit version (from fix-window-resize branch) and dir
 | 
			
		||||
#commit=70e0dcea1db122d076ce1578f2a45280cc92d09f
 | 
			
		||||
#commit=8b6dd7ee2b3102d72248990c21764c5cf86c6612
 | 
			
		||||
#archive=$(commit)
 | 
			
		||||
#wslbridgedir=wslbridge2-$(archive)
 | 
			
		||||
 | 
			
		||||
wslbridgever=0.13
 | 
			
		||||
 | 
			
		||||
# wslbridge2 fork repository and version
 | 
			
		||||
#repo=mintty/wslbridge2
 | 
			
		||||
@@ -50,13 +37,30 @@ archive=v$(wslbridgever)
 | 
			
		||||
wslbridgedir=wslbridge2-$(wslbridgever)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# wslbridge2 latest version
 | 
			
		||||
#archive=master
 | 
			
		||||
#wslbridgedir=wslbridge2-$(archive)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# wslbridge2 branch or commit version (from fix-window-resize branch) and dir
 | 
			
		||||
#commit=70e0dcea1db122d076ce1578f2a45280cc92d09f
 | 
			
		||||
#commit=8b6dd7ee2b3102d72248990c21764c5cf86c6612
 | 
			
		||||
# trying post-0.12 WSL V2 patches:
 | 
			
		||||
#commit=5b2b652d1a7355b004e7860b4370a585737e5ac9
 | 
			
		||||
#commit=274530b35a05df203d3a69f0e28d5015844f39bd
 | 
			
		||||
# pixel size patch + fix (retagged as 0.13):
 | 
			
		||||
#commit=a7162d852ff438d2d5a8dd8dae61795addb3d980
 | 
			
		||||
#archive=$(commit)
 | 
			
		||||
#wslbridgedir=wslbridge2-$(archive)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
##############################
 | 
			
		||||
 | 
			
		||||
# mintty branch or commit version
 | 
			
		||||
#minttyver=master
 | 
			
		||||
 | 
			
		||||
# wslbridge branch or commit to build from source;
 | 
			
		||||
wslbridge=wslbridge-frontend wslbridge-backend
 | 
			
		||||
wslbridge=wslbridge-source wslbridge-frontend wslbridge-backend
 | 
			
		||||
 | 
			
		||||
##############################
 | 
			
		||||
# build backend on a musl-libc-based distribution
 | 
			
		||||
@@ -73,10 +77,15 @@ WINSDKVER=`regtool list '$(WINSDKKEY)' | sed -e '$$ q' -e d`
 | 
			
		||||
 | 
			
		||||
all:	all-$(notdir $(CURDIR))
 | 
			
		||||
 | 
			
		||||
all-wsltty:	check pkg
 | 
			
		||||
# targets and version checking
 | 
			
		||||
 | 
			
		||||
all-wsltty:	check committed pkg
 | 
			
		||||
 | 
			
		||||
all-wsltty.appx:	appx
 | 
			
		||||
 | 
			
		||||
committed:
 | 
			
		||||
	if git status -suno | sed -e "s,^..,," | grep .; then false; fi
 | 
			
		||||
 | 
			
		||||
#############################################################################
 | 
			
		||||
# target checking and some defs
 | 
			
		||||
 | 
			
		||||
@@ -120,14 +129,14 @@ checkarch:
 | 
			
		||||
#############################################################################
 | 
			
		||||
# patch version information for appx package configuration
 | 
			
		||||
 | 
			
		||||
fix-verx:
 | 
			
		||||
fix-appxver:
 | 
			
		||||
	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 patching $(appxver) into app config
 | 
			
		||||
	sed -i~ -e '/<Identity / s,Version="[.0-9]*",Version="$(appxver)",' AppxManifest.xml
 | 
			
		||||
	echo patched AppxManifest.xml
 | 
			
		||||
 | 
			
		||||
#############################################################################
 | 
			
		||||
@@ -154,8 +163,15 @@ wslbridge-source:	$(wslbridgedir).zip
 | 
			
		||||
	#cd $(wslbridgedir); patch -p1 < ../0001-notify-size-change-inband.patch
 | 
			
		||||
	# patch to https://github.com/Biswa96/wslbridge2/commit/41575379b416703c49e2687e957440239a4cdfb7
 | 
			
		||||
	#cd $(wslbridgedir); patch -p0 < ../0002-add-com-for-lifted-wsl.patch
 | 
			
		||||
	# patch to fix WSL 2 launching, again
 | 
			
		||||
	# this was replaced with another patch upstream
 | 
			
		||||
	#cd $(wslbridgedir); patch -p1 < ../0012-get-vmid-from-registry.patch
 | 
			
		||||
	# patch to add WINCH/pty pixel size support (Biswa96/wslbridge2#44)
 | 
			
		||||
	#cd $(wslbridgedir); patch -p1 < ../0013-pty-pixel-size.patch
 | 
			
		||||
	# patch to fix the pixel patch of 0.13
 | 
			
		||||
	#cd $(wslbridgedir); patch -p1 < ../0013-pty-pixel-size-fix.patch
 | 
			
		||||
 | 
			
		||||
wslbridge-frontend:	wslbridge-source
 | 
			
		||||
wslbridge-frontend:
 | 
			
		||||
	echo ------------- Compiling wslbridge2 frontend
 | 
			
		||||
	mkdir -p bin
 | 
			
		||||
	# frontend build
 | 
			
		||||
@@ -165,7 +181,7 @@ wslbridge-frontend:	wslbridge-source
 | 
			
		||||
 | 
			
		||||
windir=$(shell cd "${WINDIR}"; pwd)
 | 
			
		||||
 | 
			
		||||
wslbridge-backend:	wslbridge-source
 | 
			
		||||
wslbridge-backend:
 | 
			
		||||
	echo ------------- Compiling wslbridge2 backend
 | 
			
		||||
	#uname -m | grep x86_64
 | 
			
		||||
	mkdir -p bin
 | 
			
		||||
@@ -176,15 +192,21 @@ wslbridge-backend:	wslbridge-source
 | 
			
		||||
	# extract binaries
 | 
			
		||||
	cp $(wslbridgedir)/bin/wslbridge2-backend bin/
 | 
			
		||||
 | 
			
		||||
mintty-get:
 | 
			
		||||
mintty-get:	mintty-git	# mintty-download or mintty-git
 | 
			
		||||
	cp mintty-$(minttyver)/icon/terminal.ico mintty.ico
 | 
			
		||||
 | 
			
		||||
mintty-download:
 | 
			
		||||
	$(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
 | 
			
		||||
 | 
			
		||||
mintty-git:
 | 
			
		||||
	test -d mintty-$(minttyver) || git clone --branch $(minttyver) --depth 1 $(minrepo) mintty-$(minttyver)
 | 
			
		||||
	cd mintty-$(minttyver); git checkout $(minttyver)
 | 
			
		||||
 | 
			
		||||
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)"
 | 
			
		||||
wslversion=VERSION_SUFFIX="– wsltty $(wslttyver)" WSLTTY_VERSION="$(wslttyver)"
 | 
			
		||||
appxversion=VERSION_SUFFIX="– wsltty appx $(appxver)" WSLTTY_VERSION="$(appxver)"
 | 
			
		||||
 | 
			
		||||
mintty-build:
 | 
			
		||||
	# ensure rebuild of version-specific check and message
 | 
			
		||||
@@ -205,11 +227,18 @@ mintty-build-appx:
 | 
			
		||||
	cp mintty-$(minttyver)/bin/mintty.exe bin/
 | 
			
		||||
	strip bin/mintty.exe
 | 
			
		||||
 | 
			
		||||
terminfoxt=78/xterm 78/xterm-vt220 78/xterm-256color 78/xterm-direct
 | 
			
		||||
terminfovt=76/vt100 76/vt220 76/vt340 76/vt420 76/vt525
 | 
			
		||||
terminfomt=6d/mintty 6d/mintty-direct
 | 
			
		||||
terminfo=$(terminfoxt) $(terminfovt) $(terminfomt)
 | 
			
		||||
 | 
			
		||||
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 ../../
 | 
			
		||||
	cd mintty-$(minttyver)/sounds; zoo a sounds *.wav *.WAV *.md; mv sounds.zoo ../../
 | 
			
		||||
	cd /usr/share/terminfo; zoo a /tmp/terminfo $(terminfo)
 | 
			
		||||
	mv /tmp/terminfo.zoo .
 | 
			
		||||
	# add charnames.txt to support "Character Info"
 | 
			
		||||
	cd mintty-$(minttyver)/src; sh ./mknames
 | 
			
		||||
	cp mintty-$(minttyver)/src/charnames.txt .
 | 
			
		||||
@@ -248,7 +277,7 @@ appx-bin:
 | 
			
		||||
	cp /bin/cygwin1.dll bin/
 | 
			
		||||
	cp /bin/cygwin-console-helper.exe bin/
 | 
			
		||||
 | 
			
		||||
CAB=wsltty-$(ver)-$(arch)
 | 
			
		||||
CAB=wsltty-$(wslttyver)-$(arch)
 | 
			
		||||
 | 
			
		||||
copcab:	ver
 | 
			
		||||
	mkdir -p $(CAB)
 | 
			
		||||
@@ -261,6 +290,7 @@ copcab:	ver
 | 
			
		||||
	cp lang.zoo $(CAB)/
 | 
			
		||||
	cp themes.zoo $(CAB)/
 | 
			
		||||
	cp sounds.zoo $(CAB)/
 | 
			
		||||
	cp terminfo.zoo $(CAB)/
 | 
			
		||||
	cp charnames.txt $(CAB)/
 | 
			
		||||
	cp bin/wslbridge2.exe $(CAB)/
 | 
			
		||||
	cp bin/wslbridge2-backend $(CAB)/
 | 
			
		||||
@@ -292,16 +322,16 @@ cab:
 | 
			
		||||
normal-installer:
 | 
			
		||||
	# prepare build of installer
 | 
			
		||||
	rm -f rel/$(CAB)-install.exe
 | 
			
		||||
	sed -e "s,%version%,$(ver)," -e "s,%arch%,$(arch)," makewinx.cfg > rel/wsltty.SED
 | 
			
		||||
	sed -e "s,%version%,$(wslttyver)," -e "s,%arch%,$(arch)," makewinx.cfg > rel/wsltty.SED
 | 
			
		||||
	# build installer
 | 
			
		||||
	cd rel; iexpress /n wsltty.SED
 | 
			
		||||
	cd rel; iexpress /n /q wsltty.SED
 | 
			
		||||
 | 
			
		||||
silent-installer:
 | 
			
		||||
	# prepare build of installer
 | 
			
		||||
	rm -f rel/$(CAB)-install-quiet.exe
 | 
			
		||||
	cd rel; sed -e "/ShowInstallProgramWindow/ s/0/1/" -e "/HideExtractAnimation/ s/0/1/" -e "/InstallPrompt/ s/=.*/=/" -e "/FinishMessage/ s/=.*/=/" -e "/TargetName/ s/install.exe/install-quiet.exe/" wsltty.SED > wsltty-quiet.SED
 | 
			
		||||
	# build installer
 | 
			
		||||
	cd rel; iexpress /n wsltty-quiet.SED
 | 
			
		||||
	cd rel; iexpress /n /q wsltty-quiet.SED
 | 
			
		||||
 | 
			
		||||
InstallPrompt=Install Mintty terminal for WSL Portable?
 | 
			
		||||
FinishMessage=Mintty for WSL Portable installation finished
 | 
			
		||||
@@ -311,7 +341,7 @@ portable-installer:
 | 
			
		||||
	rm -f rel/$(CAB)-install-portable.exe
 | 
			
		||||
	cd rel; sed -e "/InstallPrompt/ s/=.*/=$(InstallPrompt)/" -e "/FinishMessage/ s/=.*/=$(FinishMessage)/" -e "/AppLaunched/ s/install/install-portable/" -e "/TargetName/ s/install.exe/install-portable.exe/" wsltty.SED > wsltty-portable.SED
 | 
			
		||||
	# build installer
 | 
			
		||||
	cd rel; iexpress /n wsltty-portable.SED
 | 
			
		||||
	cd rel; iexpress /n /q wsltty-portable.SED
 | 
			
		||||
 | 
			
		||||
install:	cop installbat
 | 
			
		||||
 | 
			
		||||
@@ -319,7 +349,7 @@ installbat:
 | 
			
		||||
	cd rel; cmd /C install
 | 
			
		||||
 | 
			
		||||
ver:
 | 
			
		||||
	echo $(ver) > VERSION
 | 
			
		||||
	echo $(wslttyver) > VERSION
 | 
			
		||||
 | 
			
		||||
mintty:	mintty-get mintty-build
 | 
			
		||||
 | 
			
		||||
@@ -338,7 +368,7 @@ pkg:	wslbridge cygwin mintty-get mintty-build mintty-pkg installer
 | 
			
		||||
wsltty-appx:	wslbridge appx-bin mintty-get mintty-build-appx mintty-appx
 | 
			
		||||
 | 
			
		||||
# appx package target:
 | 
			
		||||
appx:	wsltty-appx fix-verx
 | 
			
		||||
appx:	wsltty-appx fix-appxver
 | 
			
		||||
	sh ./build.sh
 | 
			
		||||
 | 
			
		||||
#############################################################################
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										98
									
								
								makewinx.cfg
									
									
									
									
									
								
							
							
						
						
									
										98
									
								
								makewinx.cfg
									
									
									
									
									
								
							@@ -1,5 +1,5 @@
 | 
			
		||||
[Version]
 | 
			
		||||
Class=IEXPRESS
 | 
			
		||||
Class=IExpress
 | 
			
		||||
SEDVersion=3
 | 
			
		||||
 | 
			
		||||
[Options]
 | 
			
		||||
@@ -23,7 +23,7 @@ UserQuietInstCmd=%UserQuietInstCmd%
 | 
			
		||||
SourceFiles=SourceFiles
 | 
			
		||||
 | 
			
		||||
[Strings]
 | 
			
		||||
InstallPrompt=Install Mintty terminal for WSL (Windows Subsystem for Linux)?
 | 
			
		||||
InstallPrompt=Install Mintty terminal for WSL?
 | 
			
		||||
DisplayLicense=
 | 
			
		||||
FinishMessage=Mintty for WSL installed - for documentation and configuration see https://github.com/mintty/wsltty
 | 
			
		||||
TargetName=wsltty-%version%-%arch%-install.exe
 | 
			
		||||
@@ -32,71 +32,41 @@ AppLaunched=cmd.exe /c install.bat
 | 
			
		||||
PostInstallCmd=<None>
 | 
			
		||||
AdminQuietInstCmd=
 | 
			
		||||
UserQuietInstCmd=
 | 
			
		||||
FILE0="cygwin1.dll"
 | 
			
		||||
FILE1="cygwin-console-helper.exe"
 | 
			
		||||
FILE2="mintty.exe"
 | 
			
		||||
FILE3="wslbridge2.exe"
 | 
			
		||||
FILE4="wslbridge2-backend"
 | 
			
		||||
FILE5="LICENSE.mintty"
 | 
			
		||||
FILE6="LICENSE.wslbridge2"
 | 
			
		||||
FILE7="config-distros.sh"
 | 
			
		||||
FILE8="configure WSL shortcuts.lnk"
 | 
			
		||||
FILE9="charnames.txt"
 | 
			
		||||
FILE10="VERSION"
 | 
			
		||||
FILE11="dash.exe"
 | 
			
		||||
FILE12="regtool.exe"
 | 
			
		||||
FILE13="install.bat"
 | 
			
		||||
FILE14="uninstall.bat"
 | 
			
		||||
FILE15="tux.ico"
 | 
			
		||||
FILE16="add to context menu.lnk"
 | 
			
		||||
FILE17="add default to context menu.lnk"
 | 
			
		||||
FILE18="remove from context menu.lnk"
 | 
			
		||||
FILE19="wsltty home & help.url"
 | 
			
		||||
FILE20="zoo.exe"
 | 
			
		||||
FILE21="lang.zoo"
 | 
			
		||||
FILE22="themes.zoo"
 | 
			
		||||
FILE23="sounds.zoo"
 | 
			
		||||
FILE24="mintty.ico"
 | 
			
		||||
FILE25="mkshortcut.vbs"
 | 
			
		||||
FILE26="dequote.bat"
 | 
			
		||||
FILE27="cmd2.bat"
 | 
			
		||||
FILE28="install-portable.bat"
 | 
			
		||||
FILE29="getemojis"
 | 
			
		||||
FILE30="getflags"
 | 
			
		||||
 | 
			
		||||
[SourceFiles]
 | 
			
		||||
SourceFiles0=.
 | 
			
		||||
 | 
			
		||||
[SourceFiles0]
 | 
			
		||||
%FILE0%=
 | 
			
		||||
%FILE1%=
 | 
			
		||||
%FILE2%=
 | 
			
		||||
%FILE3%=
 | 
			
		||||
%FILE4%=
 | 
			
		||||
%FILE5%=
 | 
			
		||||
%FILE6%=
 | 
			
		||||
%FILE7%=
 | 
			
		||||
%FILE8%=
 | 
			
		||||
%FILE9%=
 | 
			
		||||
%FILE10%=
 | 
			
		||||
%FILE11%=
 | 
			
		||||
%FILE12%=
 | 
			
		||||
%FILE13%=
 | 
			
		||||
%FILE14%=
 | 
			
		||||
%FILE15%=
 | 
			
		||||
%FILE16%=
 | 
			
		||||
%FILE17%=
 | 
			
		||||
%FILE18%=
 | 
			
		||||
%FILE19%=
 | 
			
		||||
%FILE20%=
 | 
			
		||||
%FILE21%=
 | 
			
		||||
%FILE22%=
 | 
			
		||||
%FILE23%=
 | 
			
		||||
%FILE24%=
 | 
			
		||||
%FILE25%=
 | 
			
		||||
%FILE26%=
 | 
			
		||||
%FILE27%=
 | 
			
		||||
%FILE28%=
 | 
			
		||||
%FILE29%=
 | 
			
		||||
%FILE30%=
 | 
			
		||||
cygwin1.dll=
 | 
			
		||||
cygwin-console-helper.exe=
 | 
			
		||||
mintty.exe=
 | 
			
		||||
wslbridge2.exe=
 | 
			
		||||
wslbridge2-backend=
 | 
			
		||||
LICENSE.mintty=
 | 
			
		||||
LICENSE.wslbridge2=
 | 
			
		||||
config-distros.sh=
 | 
			
		||||
configure WSL shortcuts.lnk=
 | 
			
		||||
charnames.txt=
 | 
			
		||||
VERSION=
 | 
			
		||||
dash.exe=
 | 
			
		||||
regtool.exe=
 | 
			
		||||
install.bat=
 | 
			
		||||
uninstall.bat=
 | 
			
		||||
tux.ico=
 | 
			
		||||
add to context menu.lnk=
 | 
			
		||||
add default to context menu.lnk=
 | 
			
		||||
remove from context menu.lnk=
 | 
			
		||||
wsltty home & help.url=
 | 
			
		||||
zoo.exe=
 | 
			
		||||
lang.zoo=
 | 
			
		||||
themes.zoo=
 | 
			
		||||
sounds.zoo=
 | 
			
		||||
terminfo.zoo=
 | 
			
		||||
mintty.ico=
 | 
			
		||||
mkshortcut.vbs=
 | 
			
		||||
dequote.bat=
 | 
			
		||||
cmd2.bat=
 | 
			
		||||
install-portable.bat=
 | 
			
		||||
getemojis=
 | 
			
		||||
getflags=
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -29,10 +29,14 @@ rem wscript.echo "minttyargs: " & minttyargs
 | 
			
		||||
rem wscript.echo lnk.Arguments
 | 
			
		||||
 | 
			
		||||
rem Start in:
 | 
			
		||||
rem Working directory; Arguments.Named would take "/wdir:C:\..." parameters
 | 
			
		||||
rem wdir = Wscript.Arguments.Named("wdir")
 | 
			
		||||
rem Working directory; function ExpandEnvironmentStrings cannot pass empty
 | 
			
		||||
wdir = wshell.ExpandEnvironmentStrings("%wdir%")
 | 
			
		||||
if IsEmpty(wdir) then
 | 
			
		||||
  lnk.WorkingDirectory = "%USERPROFILE%"
 | 
			
		||||
elseif wdir = "." then
 | 
			
		||||
  lnk.WorkingDirectory = ""
 | 
			
		||||
else
 | 
			
		||||
  lnk.WorkingDirectory = wdir
 | 
			
		||||
end if
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user