mirror of
https://github.com/mintty/wsltty.git
synced 2025-11-11 04:15:57 +00:00
Compare commits
41 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d865b01135 | ||
|
|
1e7bb5fc6e | ||
|
|
8ffb732330 | ||
|
|
0d1f0875be | ||
|
|
d7c73fb40e | ||
|
|
1049ca2baf | ||
|
|
088f3bc06b | ||
|
|
28dfd66e09 | ||
|
|
3b6a356585 | ||
|
|
195f4069b4 | ||
|
|
9b3b1a89aa | ||
|
|
4e937486f5 | ||
|
|
a9a9ad5155 | ||
|
|
b4a26196eb | ||
|
|
4bca6510b5 | ||
|
|
01274fc94c | ||
|
|
d7c156c2fa | ||
|
|
c820364bd6 | ||
|
|
c3c54a397f | ||
|
|
d8c9b21b9c | ||
|
|
ae637e4645 | ||
|
|
81b586a86a | ||
|
|
0ae7cb6d80 | ||
|
|
e1a21714b9 | ||
|
|
e9306241d4 | ||
|
|
9b4fade447 | ||
|
|
6419d8c3a2 | ||
|
|
b735929c5c | ||
|
|
edf7787539 | ||
|
|
98d4697bca | ||
|
|
1106032955 | ||
|
|
a6d96ff1a2 | ||
|
|
74cb9ea92b | ||
|
|
eef97b91d7 | ||
|
|
480bbce851 | ||
|
|
f5df7b32d3 | ||
|
|
91c1b89050 | ||
|
|
ff527bcd12 | ||
|
|
a6e090a37c | ||
|
|
abe617cfc8 | ||
|
|
95203252b8 |
28
LICENSE.mintty
Normal file
28
LICENSE.mintty
Normal 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
21
LICENSE.wslbridge
Normal 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.
|
||||||
116
README.md
116
README.md
@@ -1,18 +1,116 @@
|
|||||||
Mintty as a terminal for Bash on Ubuntu on Windows / WSL.
|
Mintty as a terminal for Bash on Ubuntu on Windows / WSL.
|
||||||
|
|
||||||
#### Overview ####
|
### Overview ###
|
||||||
|
|
||||||
Run the installer to install
|
WSLtty components
|
||||||
* wsltty package components (see below) in the user’s application directory (where WSL is also installed)
|
* wsltty package components (see below) in the user’s local application folder
|
||||||
* an empty “home directory” to enable storage of a mintty config file
|
`%LOCALAPPDATA%` (where WSL is also installed)
|
||||||
* a Desktop Shortcut and a Start Menu Shortcut to start WSL with a login bash in the user’s WSL home directory
|
* a wsltty configuration directory in the user’s application folder `%APPDATA%`;
|
||||||
* context menu entries for Windows Explorer to start WSL with a bash in the respective directory
|
“home”-located configuration files from a previously installed version
|
||||||
|
will be migrated to the new default location
|
||||||
|
* 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.
|
### Installation ###
|
||||||
|
|
||||||
#### Components ####
|
#### WSLtty installer ####
|
||||||
|
|
||||||
For mintty, see the [Mintty homepage](http://mintty.github.io/).
|
Run the [installer](https://github.com/mintty/wsltty/releases) to install
|
||||||
|
the components listed above.
|
||||||
|
If Windows complains with a “Windows protected your PC” popup,
|
||||||
|
you may need to click “Run anyway” to proceed with the installation.
|
||||||
|
You may need to open the Properties of the installer first, tab “General”
|
||||||
|
section “Security” (if available) and select “Unblock”,
|
||||||
|
to enable the “Run anyway” button.
|
||||||
|
|
||||||
|
#### Installation from source repository ####
|
||||||
|
|
||||||
|
Download or checkout the wsltty repository.
|
||||||
|
Invoke `make`, then `make install`.
|
||||||
|
Note this has to be done within a Cygwin environment.
|
||||||
|
|
||||||
|
#### Installation to non-default locations ####
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
### Invocation ###
|
||||||
|
|
||||||
|
WSLtty can be invoked with
|
||||||
|
* installed desktop shortcuts or Start menu shortcuts
|
||||||
|
* wsl*.bat scripts generated into the installation directory
|
||||||
|
* Explorer context menu (if installed from the Start menu)
|
||||||
|
|
||||||
|
Starting the mintty terminal directly from the WSLtty installation location
|
||||||
|
is discouraged because that would bypass the `--configdir` option.
|
||||||
|
|
||||||
|
### Configuration ###
|
||||||
|
|
||||||
|
#### 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` (not used by wsltty default installation)
|
||||||
|
* file `config` in directory given with mintty option `--configdir`
|
||||||
|
* This is `%APPDATA%\mintty\config` in the default wsltty installation.
|
||||||
|
* `%HOME%\.minttyrc` (usage deprecated with wsltty)
|
||||||
|
* `%HOME%\.config\mintty\config` (usage deprecated with wsltty)
|
||||||
|
* `%APPDATA%\mintty\config`
|
||||||
|
* `%LOCALAPPDATA%\wsltty\etc\minttyrc` (usage deprecated with wsltty)
|
||||||
|
|
||||||
|
Note:
|
||||||
|
* `%APPDATA%\wsltty\config` is the new user configuration file location.
|
||||||
|
Further subdirectories of `%APPDATA%\wsltty` are used for language,
|
||||||
|
themes, and sounds resource configuration.
|
||||||
|
Note the distinction from `%LOCALAPPDATA%\wsltty` which is the default
|
||||||
|
wsltty software installation location.
|
||||||
|
* 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).
|
||||||
|
* (About deprecated options) By default, `%HOME%` would refer to the
|
||||||
|
root directory of the cygwin standalone installation hosting wsltty.
|
||||||
|
So `%HOME%` would mean `%LOCALAPPDATA%\wsltty\home\%USERNAME%`.
|
||||||
|
If you define `HOME` at Windows level, this changes accordingly.
|
||||||
|
Note, however, that the WSL `HOME` is a completely different setting.
|
||||||
|
|
||||||
|
#### Shell selection ####
|
||||||
|
|
||||||
|
To invoke your favourite shell, simply replace `/bin/bash` with its pathname
|
||||||
|
in the Desktop shortcuts, `wsl*.bat` invocation scripts,
|
||||||
|
or Explorer context menu commands (configured in `config-context-menu.bat`).
|
||||||
|
|
||||||
|
### Components ###
|
||||||
|
|
||||||
|
For mintty, see the [Mintty homepage](http://mintty.github.io/),
|
||||||
|
then [Mintty manual page](http://mintty.github.io/mintty.1.html),
|
||||||
|
and the [Mintty Wiki](https://github.com/mintty/mintty/wiki),
|
||||||
|
including a [Hints and Tips page](https://github.com/mintty/mintty/wiki/Tips).
|
||||||
|
|
||||||
It is based on [Cygwin](http://cygwin.com)
|
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/release/cygwin)).
|
||||||
|
|||||||
Binary file not shown.
BIN
WSL Bash -l in Mintty.lnk
Executable file
BIN
WSL Bash -l in Mintty.lnk
Executable file
Binary file not shown.
BIN
WSL Bash ~ in Mintty.lnk
Executable file
BIN
WSL Bash ~ in Mintty.lnk
Executable file
Binary file not shown.
BIN
add to context menu.lnk
Executable file
BIN
add to context menu.lnk
Executable file
Binary file not shown.
59
config-context-menu.bat
Executable file
59
config-context-menu.bat
Executable file
@@ -0,0 +1,59 @@
|
|||||||
|
@echo off
|
||||||
|
|
||||||
|
if "%installdir%" == "" set installdir=%LOCALAPPDATA%\wsltty
|
||||||
|
if "%configdir%" == "" set configdir=%APPDATA%\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% --configdir \"%configdir%\" -i \"%icon%\" %arg%
|
||||||
|
rem set target1=\"%cmd%\" %opts% %cset% --configdir \"%configdir%\" -i \"%icon%\" /bin/dash -c \"cd '%%1'; exec %arg%\"
|
||||||
|
set target1=\"%cmd%\" %opts% %cset% --configdir \"%configdir%\" -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
|
||||||
142
install.bat
142
install.bat
@@ -1,53 +1,109 @@
|
|||||||
@echo off
|
@echo off
|
||||||
goto explorer
|
|
||||||
|
|
||||||
mkdir "%LOCALAPPDATA%\wsltty"
|
set refinstalldir=%%LOCALAPPDATA%%\wsltty
|
||||||
copy LICENSE.mintty "%LOCALAPPDATA%\wsltty"
|
set installdir=%LOCALAPPDATA%\wsltty
|
||||||
copy LICENSE.wslbridge "%LOCALAPPDATA%\wsltty"
|
set refconfigdir=%%APPDATA%%\wsltty
|
||||||
|
set configdir=%APPDATA%\wsltty
|
||||||
mkdir "%LOCALAPPDATA%\wsltty\bin"
|
set oldroot=%installdir%
|
||||||
copy cygwin1.dll "%LOCALAPPDATA%\wsltty\bin"
|
set oldhomedir=%installdir%\home\%USERNAME%
|
||||||
copy cygwin-console-helper.exe "%LOCALAPPDATA%\wsltty\bin"
|
set oldconfigdir=%oldhomedir%\.config\mintty
|
||||||
copy mintty.exe "%LOCALAPPDATA%\wsltty\bin"
|
if not "%1" == "" set refinstalldir=%1 && set installdir=%1
|
||||||
copy wslbridge.exe "%LOCALAPPDATA%\wsltty\bin"
|
if not "%2" == "" set refconfigdir=%2 && set configdir=%2
|
||||||
copy wslbridge-backend "%LOCALAPPDATA%\wsltty\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"
|
|
||||||
|
|
||||||
|
|
||||||
:explorer
|
:deploy
|
||||||
rem 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
|
mkdir "%installdir%"
|
||||||
set label=WSL in Mintty
|
copy LICENSE.mintty "%installdir%"
|
||||||
rem set here=in this directory
|
copy LICENSE.wslbridge "%installdir%"
|
||||||
set here=Here
|
|
||||||
|
|
||||||
rem WSL icon
|
echo @echo off> setdirs.bat
|
||||||
set icon=%LOCALAPPDATA%\lxss\bash.ico
|
echo set refinstalldir=%refinstalldir%>> setdirs.bat
|
||||||
|
echo set installdir=%installdir%>> setdirs.bat
|
||||||
|
echo set refconfigdir=%refconfigdir%>> setdirs.bat
|
||||||
|
echo set configdir=%configdir%>> setdirs.bat
|
||||||
|
copy setdirs.bat + wsl.bat "%installdir%\wsl.bat"
|
||||||
|
copy setdirs.bat + wsl~.bat "%installdir%\wsl~.bat"
|
||||||
|
copy setdirs.bat + wsl-l.bat "%installdir%\wsl-l.bat"
|
||||||
|
copy setdirs.bat + uninstall.bat "%installdir%\uninstall.bat"
|
||||||
|
copy setdirs.bat + config-context-menu.bat "%installdir%\config-context-menu.bat"
|
||||||
|
|
||||||
rem WSL target shell
|
copy "add to context menu.lnk" "%installdir%"
|
||||||
set shell=/bin/bash
|
copy "remove from context menu.lnk" "%installdir%"
|
||||||
|
|
||||||
rem Mintty invocation
|
mkdir "%installdir%\bin"
|
||||||
set cmd=%LOCALAPPDATA%\wsltty\bin\mintty.exe
|
copy cygwin1.dll "%installdir%\bin"
|
||||||
set arg=/bin/wslbridge -t %shell%
|
copy cygwin-console-helper.exe "%installdir%\bin"
|
||||||
set target=\"%cmd%\" %arg%
|
rem copy dash.exe "%installdir%\bin"
|
||||||
|
copy mintty.exe "%installdir%\bin"
|
||||||
|
copy zoo.exe "%installdir%\bin"
|
||||||
|
copy wslbridge.exe "%installdir%\bin"
|
||||||
|
copy wslbridge-backend "%installdir%\bin"
|
||||||
|
|
||||||
reg add "%userdirname%\wsltty" /d "%label% %here%" /f
|
rem create system config directory and copy config archive
|
||||||
reg add "%userdirname%\wsltty" /v Icon /d "%icon%" /f
|
mkdir "%installdir%\usr\share\mintty\lang"
|
||||||
reg add "%userdirname%\wsltty\command" /d "%target%" /f
|
copy po.zoo "%installdir%\usr\share\mintty\lang"
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
|
:shortcuts
|
||||||
|
|
||||||
|
rem generate shortcuts
|
||||||
|
|
||||||
|
set icon=%%LOCALAPPDATA%%\lxss\bash.ico
|
||||||
|
set target=%refinstalldir%\bin\mintty.exe
|
||||||
|
set minttyargs=--wsl --configdir="%refconfigdir%" -o Locale=C -o Charset=UTF-8 /bin/wslbridge
|
||||||
|
set bridgeargs=-t /bin/bash
|
||||||
|
cscript mkshortcut.vbs "/name:WSL Bash %% in Mintty"
|
||||||
|
set bridgeargs=-C~ -t /bin/bash
|
||||||
|
cscript mkshortcut.vbs "/name:WSL Bash ~ in Mintty"
|
||||||
|
set bridgeargs=-t /bin/bash -l
|
||||||
|
cscript mkshortcut.vbs "/name:WSL Bash -l in Mintty"
|
||||||
|
|
||||||
|
rem create Start Menu Folder
|
||||||
|
set smf=%APPDATA%\Microsoft\Windows\Start Menu\Programs\WSLtty
|
||||||
|
mkdir "%smf%"
|
||||||
|
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 create Desktop Shorcuts
|
||||||
|
copy "WSL Bash %% in Mintty.lnk" "%USERPROFILE%\Desktop"
|
||||||
|
copy "WSL Bash ~ in Mintty.lnk" "%USERPROFILE%\Desktop"
|
||||||
|
|
||||||
|
|
||||||
|
:sysconfig
|
||||||
|
|
||||||
|
rem unpack config files in system config directory
|
||||||
|
cd /D "%installdir%\usr\share\mintty\lang"
|
||||||
|
"%installdir%\bin\zoo" xO po
|
||||||
|
|
||||||
|
|
||||||
|
:migrate configuration
|
||||||
|
|
||||||
|
rem migrate old config resource files to new config dir
|
||||||
|
if exist "%configdir%" goto configfile
|
||||||
|
if not exist "%oldconfigdir%" goto configfile
|
||||||
|
if exist "%oldhomedir%\.minttyrc" copy "%oldhomedir%\.minttyrc" "%oldconfigdir%\config" && del "%oldhomedir%\.minttyrc"
|
||||||
|
xcopy /E /I /Y "%oldconfigdir%" "%configdir%" && rmdir /S /Q "%oldconfigdir%"
|
||||||
|
rmdir "%oldhomedir%\.config"
|
||||||
|
:configfile
|
||||||
|
if exist "%configdir%\config" goto deloldhome
|
||||||
|
if exist "%oldhomedir%\.minttyrc" copy "%oldhomedir%\.minttyrc" "%configdir%\config" && del "%oldhomedir%\.minttyrc"
|
||||||
|
:deloldhome
|
||||||
|
rmdir "%oldhomedir%"
|
||||||
|
rmdir "%oldroot%\home"
|
||||||
|
|
||||||
|
|
||||||
|
:userconfig
|
||||||
|
|
||||||
|
rem create user config directory and subfolders
|
||||||
|
mkdir "%configdir%\lang"
|
||||||
|
mkdir "%configdir%\sounds"
|
||||||
|
mkdir "%configdir%\themes"
|
||||||
|
|
||||||
|
|
||||||
|
:end
|
||||||
|
|||||||
112
makefile
112
makefile
@@ -1,9 +1,31 @@
|
|||||||
#############################################################################
|
#############################################################################
|
||||||
# default: generate all
|
# build a wsltty installer package:
|
||||||
all: wslbridge mintty cygwin wsltty pkg
|
# configure ver=... and minttyver= in this makefile
|
||||||
|
# make targets:
|
||||||
|
# make [all] to build a distributable installer (default)
|
||||||
|
# make pkg to build an installer, bypassing the system checks
|
||||||
|
# make wsltty to build an installer using the local copy of mintty
|
||||||
|
|
||||||
ver=0.5
|
all: check pkg
|
||||||
wslbridgever=0.1.0
|
|
||||||
|
# wsltty release
|
||||||
|
ver=0.7.7.1
|
||||||
|
|
||||||
|
# mintty release version
|
||||||
|
minttyver=2.7.7
|
||||||
|
#minttyver=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)
|
TARGET := $(shell $(CC) -dumpmachine)
|
||||||
|
|
||||||
@@ -19,47 +41,97 @@ else
|
|||||||
$(error Target '$(TARGET)' not supported)
|
$(error Target '$(TARGET)' not supported)
|
||||||
endif
|
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
|
||||||
|
# check 64 bit (vs 32 bit) to provide 64-Bit stability support:
|
||||||
|
uname -m | grep x86_64
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
# generation
|
# generation
|
||||||
|
|
||||||
wslbridge:
|
wslbridge: wslbridge-backend $(wslbridge-frontend)
|
||||||
|
|
||||||
|
wslbridge-backend:
|
||||||
$(wget) https://github.com/rprichard/wslbridge/releases/download/$(wslbridgever)/wslbridge-$(wslbridgever)-$(sys).tar.gz
|
$(wget) https://github.com/rprichard/wslbridge/releases/download/$(wslbridgever)/wslbridge-$(wslbridgever)-$(sys).tar.gz
|
||||||
tar xvzf wslbridge-$(wslbridgever)-$(sys).tar.gz
|
tar xvzf wslbridge-$(wslbridgever)-$(sys).tar.gz
|
||||||
mkdir -p bin
|
mkdir -p bin
|
||||||
cp wslbridge-$(wslbridgever)-$(sys)/wslbridge* bin/
|
cp wslbridge-$(wslbridgever)-$(sys)/wslbridge* bin/
|
||||||
cp wslbridge-$(wslbridgever)-$(sys)/LICENSE.txt LICENSE.wslbridge
|
cp wslbridge-$(wslbridgever)-$(sys)/LICENSE.txt LICENSE.wslbridge
|
||||||
|
|
||||||
mintty:
|
wslbridge-frontend:
|
||||||
$(wget) https://github.com/mintty/mintty/archive/master.zip
|
$(wgeto) https://github.com/rprichard/wslbridge/archive/master.zip -o wslbridge-master.zip
|
||||||
mv master.zip mintty-master.zip
|
unzip -o wslbridge-master.zip
|
||||||
unzip mintty-master.zip
|
cd wslbridge-master/frontend; make
|
||||||
cd mintty-master/src; make LDFLAGS="-static -static-libgcc -s"
|
strip wslbridge-master/out/wslbridge.exe
|
||||||
mkdir -p bin
|
mkdir -p bin
|
||||||
cp mintty-master/bin/mintty.exe bin/
|
cp wslbridge-master/out/wslbridge.exe bin/
|
||||||
cp mintty-master/LICENSE LICENSE.mintty
|
cp wslbridge-master/LICENSE.txt LICENSE.wslbridge
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
mintty-build:
|
||||||
|
cd mintty-$(minttyver)/src; make LDFLAGS="-static -static-libgcc -s"
|
||||||
|
mkdir -p bin
|
||||||
|
cp mintty-$(minttyver)/bin/mintty.exe bin/
|
||||||
|
cp mintty-$(minttyver)/LICENSE LICENSE.mintty
|
||||||
|
cd mintty-$(minttyver)/lang; zoo a po *.po; mv po.zoo ../../
|
||||||
|
|
||||||
cygwin:
|
cygwin:
|
||||||
mkdir -p bin
|
mkdir -p bin
|
||||||
cp /bin/cygwin1.dll bin/
|
cp /bin/cygwin1.dll bin/
|
||||||
cp /bin/cygwin-console-helper.exe bin/
|
cp /bin/cygwin-console-helper.exe bin/
|
||||||
|
#cp /bin/dash.exe bin/
|
||||||
|
cp /bin/zoo.exe bin/
|
||||||
|
|
||||||
wsltty:
|
cop: ver
|
||||||
|
|
||||||
pkg:
|
|
||||||
mkdir -p rel
|
mkdir -p rel
|
||||||
|
rm -fr rel/wsltty-$(ver)-install.exe
|
||||||
sed -e "s,%version%,$(ver)," makewinx.cfg > rel/wsltty.SED
|
sed -e "s,%version%,$(ver)," makewinx.cfg > rel/wsltty.SED
|
||||||
cp bin/cygwin1.dll rel/
|
cp bin/cygwin1.dll rel/
|
||||||
cp bin/cygwin-console-helper.exe rel/
|
cp bin/cygwin-console-helper.exe rel/
|
||||||
|
#cp bin/dash.exe rel/
|
||||||
cp bin/mintty.exe rel/
|
cp bin/mintty.exe rel/
|
||||||
|
cp bin/zoo.exe rel/
|
||||||
|
cp po.zoo rel/
|
||||||
cp bin/wslbridge.exe rel/
|
cp bin/wslbridge.exe rel/
|
||||||
cp bin/wslbridge-backend rel/
|
cp bin/wslbridge-backend rel/
|
||||||
cp LICENSE.mintty rel/
|
cp LICENSE.* rel/
|
||||||
cp LICENSE.wslbridge rel/
|
cp *.lnk rel/
|
||||||
cp "Bash on UoW in Mintty.lnk" rel/
|
cp *.url rel/
|
||||||
cp install.bat rel/
|
cp *.bat rel/
|
||||||
|
cp *.vbs rel/
|
||||||
|
|
||||||
|
cab: cop
|
||||||
cd rel; iexpress /n wsltty.SED
|
cd rel; iexpress /n wsltty.SED
|
||||||
|
|
||||||
|
install: cop installbat
|
||||||
|
|
||||||
|
installbat:
|
||||||
|
cd rel; cmd /C install
|
||||||
|
|
||||||
|
ver:
|
||||||
|
echo $(ver) > VERSION
|
||||||
|
|
||||||
|
pkg: wslbridge cygwin mintty cab
|
||||||
|
|
||||||
|
wsltty: wslbridge cygwin mintty-build cab
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
# end
|
# end
|
||||||
|
|||||||
30
makewinx.cfg
30
makewinx.cfg
@@ -39,8 +39,21 @@ FILE3="wslbridge.exe"
|
|||||||
FILE4="wslbridge-backend"
|
FILE4="wslbridge-backend"
|
||||||
FILE5="LICENSE.mintty"
|
FILE5="LICENSE.mintty"
|
||||||
FILE6="LICENSE.wslbridge"
|
FILE6="LICENSE.wslbridge"
|
||||||
FILE7="Bash on UoW in Mintty.lnk"
|
FILE7="WSL Bash % in Mintty.lnk"
|
||||||
FILE8="install.bat"
|
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"
|
||||||
|
FILE19="zoo.exe"
|
||||||
|
FILE20="po.zoo"
|
||||||
|
FILE21=mkshortcut.vbs
|
||||||
|
|
||||||
[SourceFiles]
|
[SourceFiles]
|
||||||
SourceFiles0=.
|
SourceFiles0=.
|
||||||
@@ -55,4 +68,17 @@ SourceFiles0=.
|
|||||||
%FILE6%=
|
%FILE6%=
|
||||||
%FILE7%=
|
%FILE7%=
|
||||||
%FILE8%=
|
%FILE8%=
|
||||||
|
%FILE9%=
|
||||||
|
%FILE10%=
|
||||||
|
%FILE11%=
|
||||||
|
%FILE12%=
|
||||||
|
%FILE13%=
|
||||||
|
%FILE14%=
|
||||||
|
%FILE15%=
|
||||||
|
%FILE16%=
|
||||||
|
%FILE17%=
|
||||||
|
%FILE18%=
|
||||||
|
%FILE19%=
|
||||||
|
%FILE20%=
|
||||||
|
%FILE21%=
|
||||||
|
|
||||||
|
|||||||
52
mkshortcut.vbs
Executable file
52
mkshortcut.vbs
Executable file
@@ -0,0 +1,52 @@
|
|||||||
|
rem cscript mkshortcut.vbs [/param:arg] /target:link
|
||||||
|
|
||||||
|
rem %
|
||||||
|
rem /arguments:--wsl -o Locale=C -o Charset=UTF-8 /bin/wslbridge -t /bin/bash
|
||||||
|
rem ~
|
||||||
|
rem /arguments:--wsl -o Locale=C -o Charset=UTF-8 /bin/wslbridge -C~ -t /bin/bash
|
||||||
|
rem -l
|
||||||
|
rem /arguments:--wsl -o Locale=C -o Charset=UTF-8 /bin/wslbridge -t /bin/bash -l
|
||||||
|
rem /target:%LOCALAPPDATA%\wsltty\bin\mintty.exe
|
||||||
|
rem /workingdir:%USERPROFILE%
|
||||||
|
rem /icon:%LOCALAPPDATA%\lxss\bash.ico
|
||||||
|
|
||||||
|
rem General - Name:
|
||||||
|
name = Wscript.Arguments.Named("name") & ".lnk"
|
||||||
|
set wshell = WScript.CreateObject("WScript.Shell")
|
||||||
|
set lnk = wshell.CreateShortcut(name)
|
||||||
|
|
||||||
|
rem Target:
|
||||||
|
rem lnk.TargetPath = Wscript.Arguments.Named("target")
|
||||||
|
rem lnk.Arguments = Wscript.Arguments.Named("arguments")
|
||||||
|
|
||||||
|
lnk.TargetPath = wshell.ExpandEnvironmentStrings("%target%")
|
||||||
|
minttyargs = wshell.ExpandEnvironmentStrings("%minttyargs%")
|
||||||
|
bridgeargs = wshell.ExpandEnvironmentStrings("%bridgeargs%")
|
||||||
|
lnk.Arguments = minttyargs & bridgeargs
|
||||||
|
wscript.echo "minttyargs: " & minttyargs
|
||||||
|
wscript.echo lnk.Arguments
|
||||||
|
|
||||||
|
rem Start in:
|
||||||
|
rem lnk.WorkingDirectory = Wscript.Arguments.Named("workingdir")
|
||||||
|
lnk.WorkingDirectory = "%USERPROFILE%"
|
||||||
|
|
||||||
|
rem Icon:
|
||||||
|
rem icon = Wscript.Arguments.Named("icon")
|
||||||
|
rem rem iconoffset = Wscript.Arguments.Named("iconoffset")
|
||||||
|
rem rem icon = icon & ", " & iconoffset
|
||||||
|
icon = wshell.ExpandEnvironmentStrings("%icon%")
|
||||||
|
wscript.echo "icon: " & icon
|
||||||
|
lnk.IconLocation = icon
|
||||||
|
rem lnk.IconLocation = "%LOCALAPPDATA%\lxss\bash.ico"
|
||||||
|
|
||||||
|
rem Shorcut key:
|
||||||
|
rem lnk.HotKey = "ALT+CTRL+W"
|
||||||
|
|
||||||
|
rem Run:
|
||||||
|
rem lnk.WindowStyle = 1
|
||||||
|
|
||||||
|
rem Comment:
|
||||||
|
rem lnk.IconLocation = Wscript.Arguments.Named("desc")
|
||||||
|
rem lnk.Description = "WSLtty"
|
||||||
|
|
||||||
|
lnk.Save
|
||||||
BIN
remove from context menu.lnk
Executable file
BIN
remove from context menu.lnk
Executable file
Binary file not shown.
29
uninstall.bat
Executable file
29
uninstall.bat
Executable file
@@ -0,0 +1,29 @@
|
|||||||
|
@echo off
|
||||||
|
|
||||||
|
if "%installdir%" == "" 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
|
||||||
|
|
||||||
|
cd %installdir%
|
||||||
|
|
||||||
|
rem currently not removing software
|
||||||
|
|
||||||
|
|
||||||
|
:end
|
||||||
15
wsl-l.bat
Executable file
15
wsl-l.bat
Executable file
@@ -0,0 +1,15 @@
|
|||||||
|
@echo off
|
||||||
|
|
||||||
|
rem Start mintty terminal for WSL in home directory
|
||||||
|
|
||||||
|
if "%installdir%" == "" set installdir=%LOCALAPPDATA%\wsltty
|
||||||
|
if "%configdir%" == "" set configdir=%APPDATA%\wsltty
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
"%installdir%\bin\mintty.exe" --wsl "--configdir=%configdir%" -o Locale=C -o Charset=UTF-8 -i "%LOCALAPPDATA%\lxss\bash.ico" /bin/wslbridge -t /bin/bash -l
|
||||||
|
|
||||||
15
wsl.bat
Executable file
15
wsl.bat
Executable file
@@ -0,0 +1,15 @@
|
|||||||
|
@echo off
|
||||||
|
|
||||||
|
rem Start mintty terminal for WSL in home directory
|
||||||
|
|
||||||
|
if "%installdir%" == "" set installdir=%LOCALAPPDATA%\wsltty
|
||||||
|
if "%configdir%" == "" set configdir=%APPDATA%\wsltty
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
"%installdir%\bin\mintty.exe" --wsl "--configdir=%configdir%" -o Locale=C -o Charset=UTF-8 -i "%LOCALAPPDATA%\lxss\bash.ico" /bin/wslbridge -t /bin/bash
|
||||||
|
|
||||||
2
wsltty home & help.url
Normal file
2
wsltty home & help.url
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
[InternetShortcut]
|
||||||
|
URL=https://github.com/mintty/wsltty
|
||||||
15
wsl~.bat
Executable file
15
wsl~.bat
Executable file
@@ -0,0 +1,15 @@
|
|||||||
|
@echo off
|
||||||
|
|
||||||
|
rem Start mintty terminal for WSL in home directory
|
||||||
|
|
||||||
|
if "%installdir%" == "" set installdir=%LOCALAPPDATA%\wsltty
|
||||||
|
if "%configdir%" == "" set configdir=%APPDATA%\wsltty
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
"%installdir%\bin\mintty.exe" --wsl "--configdir=%configdir%" -o Locale=C -o Charset=UTF-8 -i "%LOCALAPPDATA%\lxss\bash.ico" /bin/wslbridge -C~ -t /bin/bash
|
||||||
|
|
||||||
Reference in New Issue
Block a user