1
0
mirror of https://github.com/mintty/wsltty.git synced 2025-11-03 16:41:52 +00:00

Compare commits

..

25 Commits
0.5 ... 0.7.1

Author SHA1 Message Date
mintty
d7c156c2fa update mintty 2.7.1 2016-12-04 22:58:18 +01:00
mintty
c820364bd6 adapt new configuration setup 2016-11-18 10:30:56 +01:00
mintty
c3c54a397f tweak 2016-11-18 00:17:56 +01:00
Thomas Wolff
d8c9b21b9c 2016-11-16 16:47:52 +01:00
Thomas Wolff
ae637e4645 updates for release 0.7.0 2016-11-16 16:46:50 +01:00
Thomas Wolff
81b586a86a wslbridge -> 0.2.1 2016-11-15 12:41:19 +01:00
Thomas Wolff
0ae7cb6d80 2016-11-14 16:42:47 +01:00
Thomas Wolff
e1a21714b9 mintty -> specific version (2.7.0); wslbridge -> master version 2016-11-14 16:42:27 +01:00
mintty
e9306241d4 short instructions for tweaking installation directory (#11) 2016-10-16 21:31:56 +02:00
mintty
9b4fade447 Merge pull request #11 from jmlucjav/master
simplify tweaking of installation dir
2016-10-16 21:28:39 +02:00
jmlucjav
6419d8c3a2 allow configuration of installation dir 2016-10-15 21:59:53 +02:00
Thomas Wolff
b735929c5c Describe locations of mintty settings file (#9). 2016-10-11 18:05:11 +02:00
Thomas Wolff
edf7787539 Use new mintty option --wsl to adapt file/folder drag-and-drop pasting (#8). 2016-10-11 18:04:59 +02:00
Thomas Wolff
98d4697bca Add Shortcut and command script variants changing to Linux home directory (#3). 2016-10-11 18:04:15 +02:00
Thomas Wolff
1106032955 add license files 2016-10-11 18:02:31 +02:00
mintty
a6d96ff1a2 0.6.2 2016-10-07 20:34:37 +02:00
mintty
74cb9ea92b Use new mintty option --dir, simplifying registry entry for context menu and dropping the need for dash.exe 2016-09-29 14:53:34 +02:00
mintty
eef97b91d7 Added Configuration instructions 2016-09-29 14:53:19 +02:00
mintty
480bbce851 0.6.0 2016-09-19 00:46:51 +02:00
mintty
f5df7b32d3 wsl.bat script to invoke wsltty manually (#3) 2016-09-18 22:26:47 +02:00
mintty
91c1b89050 start in Windows profile directory (#3) and set terminal charset 2016-09-18 12:06:23 +02:00
mintty
ff527bcd12 providing uninstaller (for manual invocation) 2016-09-16 13:58:30 +02:00
mintty
a6e090a37c 0.5.1 2016-09-16 13:37:04 +02:00
mintty
abe617cfc8 remove test entry skipping actual software installation :( 2016-09-16 13:35:42 +02:00
mintty
95203252b8 link "installer" to releases 2016-09-16 12:50:22 +02:00
17 changed files with 354 additions and 69 deletions

28
LICENSE.mintty Normal file
View File

@@ -0,0 +1,28 @@
mintty is copyright 2008-13 Andy Koppe, 2015-16 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.
The bundling clause can be found in the accompanying file LICENSE.bundling.
The GPL license text can be found in the accompanying file LICENSE.GPL,
at /usr/share/doc/common-licenses/GPL-3.0 on Cygwin installs,
or on the GNU website at http://www.gnu.org/licenses/gpl.html.
Sources are available from the project page at http://mintty.github.io/.
Based on PuTTY version 0.60 by Simon Tatham and contributors.
Big thanks to everyone involved for their work on PuTTY.
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.
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
quoted in the source file.
The program icon is the apps/utilities-terminal icon from KDE's Oxygen theme,
retrieved from http://websvn.kde.org/trunk/KDE/kdebase/runtime/pics/oxygen.
Thanks to the KDE artists for their sleek design. The Oxygen icons are licensed
under the terms of the LGPLv3; see LICENSE.Oxygen for details.

21
LICENSE.wslbridge Normal file
View File

@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2016 Ryan Prichard
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.

View File

@@ -1,16 +1,55 @@
Mintty as a terminal for Bash on Ubuntu on Windows / WSL.
#### Overview ####
### Overview ###
Run the installer to install
* wsltty package components (see below) in the users application directory (where WSL is also installed)
* an empty “home directory” to enable storage of a mintty config file
* a Desktop Shortcut and a Start Menu Shortcut to start WSL with a login bash in the users WSL home directory
* context menu entries for Windows Explorer to start WSL with a bash in the respective directory
Run the [installer](https://github.com/mintty/wsltty/releases) to install
* wsltty package components (see below) in the users application folder (where WSL is also installed)
* an empty wsltty “home directory” to enable storage of a mintty config file
* Start Menu and Desktop shortcuts to start a WSL bash (with some variations, see below)
* optional context menu entries for Windows Explorer to start a WSL bash in the respective folder
* install/uninstall context menu items from Start Menu subfolder
* `wsl*.bat` scripts to invoke wsltty manually (with some variations and invocation options, see below)
* an uninstall script that can be invoked manually to remove shortcuts and context menu entries
An uninstaller is not provided.
### Configuration ###
#### Components ####
#### Command line scripts wsl*.bat ####
WSLtty installs the following scripts in its application folder `%LOCALAPPDATA%\wsltty`:
* `wsl.bat` to start a WSL bash in the current folder/directory
* `wsl~.bat` to start a WSL bash in the WSL user home
* `wsl-l.bat` to start a WSL login bash
To enable invocation of these scripts from WIN+R or from cmd.exe,
copy them from `%LOCALAPPDATA%\wsltty` into `%SYSTEMROOT%\System32`,
renaming them as desired.
(The package does not do this to avoid trouble with missing admin privileges.)
#### Start Menu and Desktop shortcuts ####
The Start Menu subfolder WSLtty offers three shortcuts:
* `WSL Bash % in Mintty` to start a WSL bash in the Windows %USERPROFILE% home
* `WSL Bash ~ in Mintty` to start a WSL bash in the WSL user home
* `WSL Bash -l in Mintty` to start a WSL login bash
To ensure a login bash to start in your Linux home directory,
add a `cd` command to your `$HOME/.profile` on Linux side.
#### Mintty settings ####
Mintty can maintain its configuration file in various locations,
with the following precedence:
* file given with mintty option `-c`
* `%LOCALAPPDATA%\wsltty\home\%USERNAME%\.minttyrc`
* `%LOCALAPPDATA%\wsltty\home\%USERNAME%\.config\mintty\config`
* `%APPDATA%\mintty\config`
* `%LOCALAPPDATA%\wsltty\etc\minttyrc`
Note that the `%APPDATA%\mintty\config` option provides the possibility
to maintain common mintty settings for various installations (like
wsltty, Cygwin, MinGW/msys, Git for Windows, MinEd for Windows).
### Components ###
For mintty, see the [Mintty homepage](http://mintty.github.io/).

BIN
WSL Bash -l in Mintty.lnk Executable file

Binary file not shown.

BIN
WSL Bash ~ in Mintty.lnk Executable file

Binary file not shown.

BIN
add to context menu.lnk Executable file

Binary file not shown.

59
config-context-menu.bat Executable file
View File

@@ -0,0 +1,59 @@
@echo off
rem See comments in install.bat about changing the installation directory.
set installdir=%LOCALAPPDATA%\wsltty
if "%1"=="/U" goto remove
if "%1"=="/u" goto remove
:add
rem add to Explorer context menu
set userdirname=HKEY_CURRENT_USER\Software\Classes\Directory\shell
set userdirpane=HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell
rem WSL in Mintty
set label=WSL in Mintty
rem set here=in this directory
set here=Here
rem WSL icon
set icon=%LOCALAPPDATA%\lxss\bash.ico
rem WSL target shell
set shell=/bin/bash
rem Mintty invocation
set cmd=%installdir%\bin\mintty.exe
set cset=-o Locale=C -o Charset=UTF-8
set opts=--wsl
set arg=/bin/wslbridge -t %shell%
set target0=\"%cmd%\" %opts% %cset% -i \"%icon%\" %arg%
rem set target1=\"%cmd%\" %opts% %cset% -i \"%icon%\" /bin/dash -c \"cd '%%1'; exec %arg%\"
set target1=\"%cmd%\" %opts% %cset% -i \"%icon%\" --dir \"%%1\" %arg%
rem Registry entries
reg add "%userdirname%\wsltty" /d "%label% %here%" /f
reg add "%userdirname%\wsltty" /v Icon /d "%icon%" /f
reg add "%userdirname%\wsltty\command" /d "%target1%" /f
reg add "%userdirpane%\wsltty" /d "%label% %here%" /f
reg add "%userdirpane%\wsltty" /v Icon /d "%icon%" /f
reg add "%userdirpane%\wsltty\command" /d "%target0%" /f
goto end
:remove
rem remove from Explorer context menu
rem delete Explorer context menu
set userdirname=HKEY_CURRENT_USER\Software\Classes\Directory\shell
set userdirpane=HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell
reg delete "%userdirname%\wsltty" /f
reg delete "%userdirpane%\wsltty" /f
:end

View File

@@ -1,53 +1,61 @@
@echo off
goto explorer
mkdir "%LOCALAPPDATA%\wsltty"
copy LICENSE.mintty "%LOCALAPPDATA%\wsltty"
copy LICENSE.wslbridge "%LOCALAPPDATA%\wsltty"
rem If you change the installation directory,
rem it also needs to be adapted in
rem - the Shortcut links *.lnk
rem - the cmd invocation scripts wsl*.bat
mkdir "%LOCALAPPDATA%\wsltty\bin"
copy cygwin1.dll "%LOCALAPPDATA%\wsltty\bin"
copy cygwin-console-helper.exe "%LOCALAPPDATA%\wsltty\bin"
copy mintty.exe "%LOCALAPPDATA%\wsltty\bin"
copy wslbridge.exe "%LOCALAPPDATA%\wsltty\bin"
copy wslbridge-backend "%LOCALAPPDATA%\wsltty\bin"
set installdir=%LOCALAPPDATA%\wsltty
:deploy
mkdir "%installdir%"
copy LICENSE.mintty "%installdir%"
copy LICENSE.wslbridge "%installdir%"
copy uninstall.bat "%installdir%"
copy wsl.bat "%installdir%"
copy wsl~.bat "%installdir%"
copy wsl-l.bat "%installdir%"
copy "config-context-menu.bat" "%installdir%"
copy "add to context menu.lnk" "%installdir%"
copy "remove from context menu.lnk" "%installdir%"
rem does not work without admin rights:
rem copy wsl.bat "%SYSTEMROOT%\System32"
rem copy wsl~.bat "%SYSTEMROOT%\System32"
rem copy wsl-l.bat "%SYSTEMROOT%\System32"
mkdir "%installdir%\bin"
copy cygwin1.dll "%installdir%\bin"
copy cygwin-console-helper.exe "%installdir%\bin"
rem copy dash.exe "%installdir%\bin"
copy mintty.exe "%installdir%\bin"
copy wslbridge.exe "%installdir%\bin"
copy wslbridge-backend "%installdir%\bin"
rem create "home directory" to enable storage of config file
mkdir "%LOCALAPPDATA%\wsltty\home
mkdir "%LOCALAPPDATA%\wsltty\home\%USERNAME%"
rem create Desktop Shorcut
copy "Bash on UoW in Mintty.lnk" "%USERPROFILE%\Desktop"
rem create Start Menu Shortcut
copy "Bash on UoW in Mintty.lnk" "%APPDATA%\Microsoft\Windows\Start Menu"
mkdir "%installdir%\home
mkdir "%installdir%\home\%USERNAME%"
:explorer
rem Explorer context menu
set userdirname=HKEY_CURRENT_USER\Software\Classes\Directory\shell
set userdirpane=HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell
:shortcuts
rem WSL in Mintty
set label=WSL in Mintty
rem set here=in this directory
set here=Here
rem create Start Menu Folder
set smf=%APPDATA%\Microsoft\Windows\Start Menu\Programs\WSLtty
mkdir "%smf%"
echo on
copy "wsltty home & help.url" "%smf%"
copy "WSL Bash %% in Mintty.lnk" "%smf%"
copy "WSL Bash ~ in Mintty.lnk" "%smf%"
copy "WSL Bash -l in Mintty.lnk" "%smf%"
mkdir "%smf%\context menu shortcuts"
copy "add to context menu.lnk" "%smf%\context menu shortcuts"
copy "remove from context menu.lnk" "%smf%\context menu shortcuts"
rem WSL icon
set icon=%LOCALAPPDATA%\lxss\bash.ico
rem create Desktop Shorcuts
copy "WSL Bash %% in Mintty.lnk" "%USERPROFILE%\Desktop"
copy "WSL Bash ~ in Mintty.lnk" "%USERPROFILE%\Desktop"
rem WSL target shell
set shell=/bin/bash
rem Mintty invocation
set cmd=%LOCALAPPDATA%\wsltty\bin\mintty.exe
set arg=/bin/wslbridge -t %shell%
set target=\"%cmd%\" %arg%
reg add "%userdirname%\wsltty" /d "%label% %here%" /f
reg add "%userdirname%\wsltty" /v Icon /d "%icon%" /f
reg add "%userdirname%\wsltty\command" /d "%target%" /f
reg add "%userdirpane%\wsltty" /d "%label% %here%" /f
reg add "%userdirpane%\wsltty" /v Icon /d "%icon%" /f
reg add "%userdirpane%\wsltty\command" /d "%target%" /f
:end

View File

@@ -1,9 +1,25 @@
#############################################################################
# default: generate all
all: wslbridge mintty cygwin wsltty pkg
all: check pkg
ver=0.5
wslbridgever=0.1.0
# wsltty release
ver=0.7.1
# mintty release version
minver=2.7.1
#minver=master
# wslbridge backend version
wslbridgever=0.2.1
# wslbridge frontend version
# release 0.2.0 does not have cygwin_internal(CW_SYNC_WINENV) yet;
# therefore using "master" below
#wslbridge-frontend=wslbridge-frontend
# release 0.2.1 is updated and complete, no separate frontend build needed:
wslbridge-frontend=
#############################################################################
# target checking and some defs
TARGET := $(shell $(CC) -dumpmachine)
@@ -19,46 +35,72 @@ else
$(error Target '$(TARGET)' not supported)
endif
wget=curl -R -L -O --connect-timeout 55
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)
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:
uname -m | grep i686
#############################################################################
# generation
wslbridge:
wslbridge: wslbridge-backend $(wslbridge-frontend)
wslbridge-backend:
$(wget) https://github.com/rprichard/wslbridge/releases/download/$(wslbridgever)/wslbridge-$(wslbridgever)-$(sys).tar.gz
tar xvzf wslbridge-$(wslbridgever)-$(sys).tar.gz
mkdir -p bin
cp wslbridge-$(wslbridgever)-$(sys)/wslbridge* bin/
cp wslbridge-$(wslbridgever)-$(sys)/LICENSE.txt LICENSE.wslbridge
mintty:
$(wget) https://github.com/mintty/mintty/archive/master.zip
mv master.zip mintty-master.zip
unzip mintty-master.zip
cd mintty-master/src; make LDFLAGS="-static -static-libgcc -s"
wslbridge-frontend:
$(wgeto) https://github.com/rprichard/wslbridge/archive/master.zip -o wslbridge-master.zip
unzip -o wslbridge-master.zip
cd wslbridge-master/frontend; make
strip wslbridge-master/out/wslbridge.exe
mkdir -p bin
cp mintty-master/bin/mintty.exe bin/
cp mintty-master/LICENSE LICENSE.mintty
cp wslbridge-master/out/wslbridge.exe bin/
cp wslbridge-master/LICENSE.txt LICENSE.wslbridge
mintty:
$(wgeto) https://github.com/mintty/mintty/archive/$(minver).zip -o mintty-$(minver).zip
unzip -o mintty-$(minver).zip
cd mintty-$(minver)/src; make LDFLAGS="-static -static-libgcc -s"
mkdir -p bin
cp mintty-$(minver)/bin/mintty.exe bin/
cp mintty-$(minver)/LICENSE LICENSE.mintty
cygwin:
mkdir -p bin
cp /bin/cygwin1.dll bin/
cp /bin/cygwin-console-helper.exe bin/
#cp /bin/dash.exe bin/
wsltty:
pkg:
pkg: wslbridge mintty cygwin wsltty
mkdir -p rel
sed -e "s,%version%,$(ver)," makewinx.cfg > rel/wsltty.SED
cp bin/cygwin1.dll rel/
cp bin/cygwin-console-helper.exe rel/
#cp bin/dash.exe rel/
cp bin/mintty.exe rel/
cp bin/wslbridge.exe rel/
cp bin/wslbridge-backend rel/
cp LICENSE.mintty rel/
cp LICENSE.wslbridge rel/
cp "Bash on UoW in Mintty.lnk" rel/
cp install.bat rel/
cp LICENSE.* rel/
cp *.lnk rel/
cp *.url rel/
cp *.bat rel/
cd rel; iexpress /n wsltty.SED
#############################################################################

View File

@@ -39,8 +39,18 @@ FILE3="wslbridge.exe"
FILE4="wslbridge-backend"
FILE5="LICENSE.mintty"
FILE6="LICENSE.wslbridge"
FILE7="Bash on UoW in Mintty.lnk"
FILE8="install.bat"
FILE7="WSL Bash % in Mintty.lnk"
FILE8="WSL Bash ~ in Mintty.lnk"
FILE9="WSL Bash -l in Mintty.lnk"
FILE10="wsl.bat"
FILE11="wsl~.bat"
FILE12="wsl-l.bat"
FILE13="install.bat"
FILE14="uninstall.bat"
FILE15="config-context-menu.bat"
FILE16="add to context menu.lnk"
FILE17="remove from context menu.lnk"
FILE18="wsltty home & help.url"
[SourceFiles]
SourceFiles0=.
@@ -55,4 +65,14 @@ SourceFiles0=.
%FILE6%=
%FILE7%=
%FILE8%=
%FILE9%=
%FILE10%=
%FILE11%=
%FILE12%=
%FILE13%=
%FILE14%=
%FILE15%=
%FILE16%=
%FILE17%=
%FILE18%=

BIN
remove from context menu.lnk Executable file

Binary file not shown.

30
uninstall.bat Executable file
View File

@@ -0,0 +1,30 @@
@echo off
rem See comments in install.bat about changing the installation directory.
set installdir=%LOCALAPPDATA%\wsltty
:shortcuts
rem delete Start Menu Folder
set smf=%APPDATA%\Microsoft\Windows\Start Menu\Programs\WSLtty
rmdir /S /Q "%smf%"
rem delete Desktop Shortcuts
del "%USERPROFILE%\Desktop\WSL Bash % in Mintty.lnk"
del "%USERPROFILE%\Desktop\WSL Bash ~ in Mintty.lnk"
:explorer context menu
call "%installdir%\config-context-menu.bat" /U
:undeploy
rem currently not removing software
rem in any case, at least the config file (home\...) should not be removed
:end

12
wsl-l.bat Executable file
View File

@@ -0,0 +1,12 @@
@echo off
rem Start mintty terminal for WSL in home directory
rem To enable invocation of this script from WIN+R or from cmd.exe,
rem you may want to copy this script into "%SYSTEMROOT%\System32"
rem You may want a variant of this script without trailing "-l"
rem to start in the current directory from cmd.exe
"%LOCALAPPDATA%\wsltty\bin\mintty.exe" --wsl -o Locale=C -o Charset=UTF-8 -i "%LOCALAPPDATA%\lxss\bash.ico" /bin/wslbridge -t /bin/bash -l

12
wsl.bat Executable file
View File

@@ -0,0 +1,12 @@
@echo off
rem Start mintty terminal for WSL in home directory
rem To enable invocation of this script from WIN+R or from cmd.exe,
rem you may want to copy this script into "%SYSTEMROOT%\System32"
rem You may want a variant of this script without trailing "-l"
rem to start in the current directory from cmd.exe
"%LOCALAPPDATA%\wsltty\bin\mintty.exe" --wsl -o Locale=C -o Charset=UTF-8 -i "%LOCALAPPDATA%\lxss\bash.ico" /bin/wslbridge -t /bin/bash

2
wsltty home & help.url Normal file
View File

@@ -0,0 +1,2 @@
[InternetShortcut]
URL=https://github.com/mintty/wsltty

12
wsl~.bat Executable file
View File

@@ -0,0 +1,12 @@
@echo off
rem Start mintty terminal for WSL in home directory
rem To enable invocation of this script from WIN+R or from cmd.exe,
rem you may want to copy this script into "%SYSTEMROOT%\System32"
rem You may want a variant of this script without trailing "-l"
rem to start in the current directory from cmd.exe
"%LOCALAPPDATA%\wsltty\bin\mintty.exe" --wsl -o Locale=C -o Charset=UTF-8 -i "%LOCALAPPDATA%\lxss\bash.ico" /bin/wslbridge -C~ -t /bin/bash