1
0
mirror of https://github.com/mintty/wsltty.git synced 2025-11-02 08:01:52 +00:00

Compare commits

...

36 Commits
1.8.4 ... 1.9.7

Author SHA1 Message Date
mintty
ad65aa9931 1.9.7 2019-03-15 00:50:56 +01:00
mintty
c9acce8d76 generic parameter list (#147) 2019-02-18 17:13:31 +01:00
mintty
1533c27b36 allow WSL commands as parameters to .bat invocation scripts (#147) 2019-02-17 13:47:51 +01:00
mintty
3e3eaf6e31 1.9.6 2019-01-20 19:53:22 +01:00
mintty
482df018c9 deploy two icons (#132) 2019-01-20 19:52:40 +01:00
mintty
23fc790c26 deploy two icons, allow previous icon to persist (#132),
do not deploy WSL default .lnk files anymore
2019-01-20 19:49:49 +01:00
mintty
e5c67ecc7c tweak registry key names to avoid collision with existing keys and enable context menu invocation of default WSL (#141) 2019-01-06 12:08:25 +01:00
mintty
20075c6378 allow persistent customization of default icon (#132) 2019-01-01 14:53:48 +01:00
mintty
05ce002fc6 1.9.5 2018-12-05 11:18:55 +01:00
mintty
cc37c6c2d5 1.9.4 controls 2018-11-14 08:06:26 +01:00
mintty
5ef4879be2 1.9.3 2018-10-05 18:55:39 +02:00
mintty
97699c2010 1.9.2 2018-10-03 19:27:14 +02:00
mintty
4316b754da prepare for 1.9.1 2018-09-21 17:44:31 +02:00
mintty
b8171d61a6 do without basename (which isn't installed) 2018-09-21 17:44:02 +02:00
mintty
d7f14146fd consider manually tuned installdir and configdir (#119) 2018-09-14 00:08:19 +02:00
mintty
46ee1b4c1c quote PATH setting (#121) 2018-09-13 23:07:48 +02:00
mintty
27a9ce6f42 remove hen-or-egg dependency on wslbridge-backend (#118) 2018-07-23 20:53:31 +02:00
mintty
e88e60a786 Merge pull request #114 from rasa/patch-1
Add scoop install instructions to readme.md (#30)
2018-07-05 11:09:57 +02:00
Ross Smith II
dfeaf49ae9 Add scoop install instructions to readme.md 2018-07-04 17:59:07 -07:00
mintty
fd81d580d6 1.9.0.2 2018-07-04 21:38:33 +02:00
mintty
3281c12216 wslbridge version fix 2018-07-04 21:37:53 +02:00
mintty
46ab74d6b4 fix wslbridge commit reference 2018-07-02 16:37:44 +02:00
mintty
a5b546ee4a 1.9.0 2018-07-02 01:26:08 +02:00
mintty
26a1abb148 Update README.md 2018-05-08 08:43:31 +02:00
mintty
e7709798c5 2018-04-19 08:22:06 +02:00
mintty
37c5e0dc40 2018-04-19 08:08:43 +02:00
mintty
55c034ec66 separators 2018-04-19 07:42:45 +02:00
mintty
df054073ef section package manager installation 2018-04-18 15:24:10 +02:00
mintty
ace39cbd03 revert fruitless attempt to hide VBS from aggressive virus scanners (~#94) 2018-04-18 10:46:17 +02:00
mintty
e9b2e108f7 1.8.5 2018-04-12 20:57:27 +02:00
mintty
f66c87cc62 attempt to avoid virus scanners choking on VBS script name (#94) 2018-04-12 20:56:31 +02:00
mintty
36e0d9c58a prepare release 1.8.5 2018-04-11 16:40:43 +02:00
mintty
5db1916332 use wslbridge wslpath branch, support WSL mount point configuration (/etc/wsl.conf or fstab) (#91) 2018-04-08 11:33:19 +02:00
mintty
8911503a87 2018-04-03 15:28:53 +02:00
mintty
55792acd8d deploy wsl.ico in common resource directory (mintty/wsltty.appx#4) 2018-04-02 23:44:50 +02:00
mintty
b8330e46d8 deploy Character Info names table (#82) 2018-04-02 23:35:40 +02:00
11 changed files with 177 additions and 43 deletions

View File

@@ -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

View File

@@ -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

44
README.md Executable file → Normal file
View File

@@ -15,7 +15,9 @@ 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 ###
---
### Installation from this repository ###
#### WSLtty installer ([Download](https://github.com/mintty/wsltty/releases) standalone installation) ####
@@ -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,
@@ -128,6 +166,8 @@ 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 ###
For mintty, see the [Mintty homepage](http://mintty.github.io/)

View File

@@ -1 +1 @@
1.8.4
1.9.7

View File

@@ -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

View File

@@ -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"

View File

@@ -8,11 +8,18 @@
# wsltty release
ver=1.8.4
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.4
minttyver=2.9.7
# or mintty branch or commit version
#minttyver=master
@@ -24,7 +31,7 @@ wslbridgever=0.2.4
# or wslbridge branch or commit to build from source;
# also set wslbridge-commit
#wslbridge=wslbridge-frontend wslbridge-backend
wslbridge=wslbridge-frontend wslbridge-backend
# release 0.2.0 does not have cygwin_internal(CW_SYNC_WINENV) yet:
#wslbridge-commit=master
@@ -35,10 +42,23 @@ wslbridgever=0.2.4
# 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
@@ -74,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
@@ -100,18 +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: 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
@@ -120,9 +154,31 @@ mintty-build:
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
@@ -132,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
@@ -144,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/
@@ -166,9 +228,22 @@ installbat:
ver:
echo $(ver) > VERSION
pkg: wslbridge cygwin mintty cab
mintty: mintty-get mintty-build
wsltty: wslbridge cygwin mintty-build
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

View File

@@ -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%=

View File

@@ -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
View File

Before

Width:  |  Height:  |  Size: 472 KiB

After

Width:  |  Height:  |  Size: 472 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB