mirror of
https://github.com/mintty/wsltty.git
synced 2025-11-02 08:01:52 +00:00
Compare commits
22 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 |
@@ -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) 2018 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
|
||||
|
||||
18
README.md
18
README.md
@@ -52,6 +52,15 @@ invoke one of
|
||||
* `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.
|
||||
@@ -64,7 +73,7 @@ A Windows Appx package and certificate is available in the [wsltty.appx](https:/
|
||||
|
||||
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
|
||||
@@ -112,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,
|
||||
|
||||
@@ -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"'" --configdir="%APPDATA%\wsltty" -o Locale=C -o Charset=UTF-8 /bin/wslbridge '
|
||||
minttyargs='--WSL="'"$distro"'" --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= --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
|
||||
|
||||
14
install.bat
14
install.bat
@@ -26,11 +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 Terminal.lnk" "%installdir%"
|
||||
copy "WSL Terminal %%.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
|
||||
@@ -62,7 +63,8 @@ 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"
|
||||
copy tux.ico "%installdir%\usr\share\mintty\icon"
|
||||
copy mintty.ico "%installdir%\usr\share\mintty\icon"
|
||||
|
||||
|
||||
rem create Start Menu Folder
|
||||
@@ -77,8 +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%"
|
||||
copy "WSL Terminal.lnk" "%smf%"
|
||||
copy "WSL Terminal %%.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"
|
||||
|
||||
|
||||
44
makefile
44
makefile
@@ -8,11 +8,18 @@
|
||||
|
||||
|
||||
# wsltty release
|
||||
ver=1.9.0
|
||||
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.9.0
|
||||
minttyver=2.9.7
|
||||
|
||||
# or mintty branch or commit version
|
||||
#minttyver=master
|
||||
@@ -41,6 +48,9 @@ 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
|
||||
|
||||
@@ -84,6 +94,19 @@ check:
|
||||
# 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
|
||||
|
||||
@@ -110,16 +133,19 @@ 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-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
|
||||
@@ -129,6 +155,14 @@ mintty-build:
|
||||
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 ../../
|
||||
@@ -205,10 +239,10 @@ wsltty: wslbridge cygwin mintty-build mintty-pkg
|
||||
pkg: wslbridge cygwin mintty-get mintty-build mintty-pkg cab
|
||||
|
||||
# appx package contents target:
|
||||
wsltty-appx: wslbridge appx-bin mintty-get mintty-build mintty-appx
|
||||
wsltty-appx: wslbridge appx-bin mintty-get mintty-build-appx mintty-appx
|
||||
|
||||
# appx package target:
|
||||
appx: wsltty-appx
|
||||
appx: wsltty-appx fix-verx
|
||||
sh ./build.sh
|
||||
|
||||
#############################################################################
|
||||
|
||||
@@ -47,7 +47,7 @@ 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,9 +55,8 @@ FILE19="wsltty home & help.url"
|
||||
FILE20="zoo.exe"
|
||||
FILE21="lang.zoo"
|
||||
FILE22="themes.zoo"
|
||||
FILE23="WSL Terminal %.lnk"
|
||||
FILE24="WSL Terminal.lnk"
|
||||
FILE25="mkshortcut.vbs"
|
||||
FILE23="mkshortcut.vbs"
|
||||
FILE24="mintty.ico"
|
||||
|
||||
[SourceFiles]
|
||||
SourceFiles0=.
|
||||
@@ -88,5 +87,4 @@ SourceFiles0=.
|
||||
%FILE22%=
|
||||
%FILE23%=
|
||||
%FILE24%=
|
||||
%FILE25%=
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 472 KiB After Width: | Height: | Size: 472 KiB |
Reference in New Issue
Block a user