mirror of
https://github.com/mintty/wsltty.git
synced 2025-11-05 09:31:58 +00:00
Compare commits
28 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 |
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.
|
||||
76
README.md
76
README.md
@@ -3,35 +3,75 @@ Mintty as a terminal for Bash on Ubuntu on Windows / WSL.
|
||||
### Overview ###
|
||||
|
||||
Run the [installer](https://github.com/mintty/wsltty/releases) to install
|
||||
* 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 application folder (where WSL is also installed)
|
||||
* an empty wsltty “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 *Windows user profile* directory; to start in the Linux home directory instead, add a `cd` command to your Linux `$HOME/.profile` script
|
||||
* context menu entries for Windows Explorer to start WSL with a bash in the respective directory
|
||||
* a script `wsl.bat` to invoke wsltty manually; copy the script from `%LOCALAPPDATA%\wsltty` to `%SYSTEMROOT%\System32` if desired
|
||||
* 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
|
||||
|
||||
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.
|
||||
|
||||
### Configuration ###
|
||||
|
||||
#### Command line script wsl.bat ####
|
||||
#### Command line scripts `wsl*.bat` ####
|
||||
|
||||
* To enable invocation of this script from WIN+R or from cmd.exe,
|
||||
copy it from `%LOCALAPPDATA%\wsltty` into `%SYSTEMROOT%\System32`.
|
||||
(The package does not do this to avoid trouble with missing admin privileges.)
|
||||
* To start the terminal in the current directory when calling the script from the command line,
|
||||
modify it (or a copy for this purpose) and remove the final `-l` parameter.
|
||||
* To enforce starting in your Linux home directory, do *either* of:
|
||||
* On Linux side, add a `cd` command to your `$HOME/.profile`.
|
||||
* In the script (or a copy for this purpose), add `-C~` as first parameter of `wslbridge`: `... /bin/wslbridge -C~ -t /bin/bash -l`.
|
||||
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
|
||||
|
||||
#### Desktop shortcut and Start menu shortcut ####
|
||||
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.)
|
||||
|
||||
To enforce starting in your Linux home directory, do *either* of:
|
||||
* On Linux side, add a `cd` command to your `$HOME/.profile`.
|
||||
* Open Shortcut Properties; in the Target, add `-C~` as first parameter of `wslbridge`: `... /bin/wslbridge -C~ -t /bin/bash -l`.
|
||||
#### 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`
|
||||
* `%HOME%\.minttyrc`
|
||||
* `%HOME%\.config\mintty\config`
|
||||
* `%APPDATA%\mintty\config`
|
||||
* `%LOCALAPPDATA%\wsltty\etc\minttyrc`
|
||||
|
||||
Note:
|
||||
* 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.
|
||||
* 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).
|
||||
|
||||
#### 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/).
|
||||
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)
|
||||
and includes its runtime library ([sources](http://mirrors.dotsrc.org/cygwin/x86/release/cygwin)).
|
||||
|
||||
BIN
WSL Bash % in Mintty.lnk
Executable file
BIN
WSL Bash % in Mintty.lnk
Executable file
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.
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% -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
|
||||
134
install.bat
134
install.bat
@@ -1,71 +1,109 @@
|
||||
rem @echo off
|
||||
@echo off
|
||||
|
||||
set refinstalldir=%%LOCALAPPDATA%%\wsltty
|
||||
set installdir=%LOCALAPPDATA%\wsltty
|
||||
set refconfigdir=%%APPDATA%%\wsltty
|
||||
set configdir=%APPDATA%\wsltty
|
||||
set oldroot=%installdir%
|
||||
set oldhomedir=%installdir%\home\%USERNAME%
|
||||
set oldconfigdir=%oldhomedir%\.config\mintty
|
||||
if not "%1" == "" set refinstalldir=%1 && set installdir=%1
|
||||
if not "%2" == "" set refconfigdir=%2 && set configdir=%2
|
||||
|
||||
|
||||
:deploy
|
||||
|
||||
mkdir "%LOCALAPPDATA%\wsltty"
|
||||
copy LICENSE.mintty "%LOCALAPPDATA%\wsltty"
|
||||
copy LICENSE.wslbridge "%LOCALAPPDATA%\wsltty"
|
||||
copy uninstall.bat "%LOCALAPPDATA%\wsltty"
|
||||
mkdir "%installdir%"
|
||||
copy LICENSE.mintty "%installdir%"
|
||||
copy LICENSE.wslbridge "%installdir%"
|
||||
|
||||
copy wsl.bat "%LOCALAPPDATA%\wsltty"
|
||||
rem does not work without admin rights:
|
||||
rem copy wsl.bat "%SYSTEMROOT%\System32"
|
||||
echo @echo off> setdirs.bat
|
||||
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"
|
||||
|
||||
mkdir "%LOCALAPPDATA%\wsltty\bin"
|
||||
copy cygwin1.dll "%LOCALAPPDATA%\wsltty\bin"
|
||||
copy cygwin-console-helper.exe "%LOCALAPPDATA%\wsltty\bin"
|
||||
rem copy dash.exe "%LOCALAPPDATA%\wsltty\bin"
|
||||
copy mintty.exe "%LOCALAPPDATA%\wsltty\bin"
|
||||
copy wslbridge.exe "%LOCALAPPDATA%\wsltty\bin"
|
||||
copy wslbridge-backend "%LOCALAPPDATA%\wsltty\bin"
|
||||
copy "add to context menu.lnk" "%installdir%"
|
||||
copy "remove from context menu.lnk" "%installdir%"
|
||||
|
||||
rem create "home directory" to enable storage of config file
|
||||
mkdir "%LOCALAPPDATA%\wsltty\home
|
||||
mkdir "%LOCALAPPDATA%\wsltty\home\%USERNAME%"
|
||||
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 zoo.exe "%installdir%\bin"
|
||||
copy wslbridge.exe "%installdir%\bin"
|
||||
copy wslbridge-backend "%installdir%\bin"
|
||||
|
||||
rem create system config directory and copy config archive
|
||||
mkdir "%installdir%\usr\share\mintty\lang"
|
||||
copy po.zoo "%installdir%\usr\share\mintty\lang"
|
||||
|
||||
|
||||
:shortcuts
|
||||
|
||||
rem create Desktop Shorcut
|
||||
copy "Bash on UoW in Mintty.lnk" "%USERPROFILE%\Desktop"
|
||||
rem generate shortcuts
|
||||
|
||||
rem create Start Menu Shortcut
|
||||
copy "Bash on UoW in Mintty.lnk" "%APPDATA%\Microsoft\Windows\Start Menu"
|
||||
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"
|
||||
|
||||
|
||||
:explorer
|
||||
:sysconfig
|
||||
|
||||
rem Explorer context menu
|
||||
set userdirname=HKEY_CURRENT_USER\Software\Classes\Directory\shell
|
||||
set userdirpane=HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell
|
||||
rem unpack config files in system config directory
|
||||
cd /D "%installdir%\usr\share\mintty\lang"
|
||||
"%installdir%\bin\zoo" xO po
|
||||
|
||||
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
|
||||
:migrate configuration
|
||||
|
||||
rem WSL target shell
|
||||
set shell=/bin/bash
|
||||
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"
|
||||
|
||||
rem Mintty invocation
|
||||
set cmd=%LOCALAPPDATA%\wsltty\bin\mintty.exe
|
||||
set cset=-o Locale=C -o Charset=UTF-8
|
||||
set icon=%LOCALAPPDATA%\lxss\bash.ico
|
||||
set arg=/bin/wslbridge -t %shell%
|
||||
set target0=\"%cmd%\" %cset% -i \"%icon%\" %arg%
|
||||
rem set target1=\"%cmd%\" %cset% -i \"%icon%\" /bin/dash -c \"cd '%%1'; exec %arg%\"
|
||||
set target1=\"%cmd%\" %cset% -i \"%icon%\" --dir \"%%1\" %arg%
|
||||
|
||||
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
|
||||
: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
|
||||
all: wslbridge mintty cygwin wsltty pkg
|
||||
# build a wsltty installer package:
|
||||
# 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.6.2
|
||||
wslbridgever=0.2.0
|
||||
all: check pkg
|
||||
|
||||
# wsltty release
|
||||
ver=0.7.7
|
||||
|
||||
# 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)
|
||||
|
||||
@@ -19,51 +41,97 @@ 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
|
||||
# check 64 bit (vs 32 bit) to provide 64-Bit stability support:
|
||||
uname -m | grep x86_64
|
||||
|
||||
#############################################################################
|
||||
# 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 -o 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: 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:
|
||||
mkdir -p bin
|
||||
cp /bin/cygwin1.dll bin/
|
||||
cp /bin/cygwin-console-helper.exe bin/
|
||||
#cp /bin/dash.exe bin/
|
||||
cp /bin/zoo.exe bin/
|
||||
|
||||
wsltty:
|
||||
|
||||
pkg:
|
||||
cop: ver
|
||||
mkdir -p rel
|
||||
rm -fr rel/wsltty-$(ver)-install.exe
|
||||
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/zoo.exe rel/
|
||||
cp po.zoo 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 wsl.bat rel/
|
||||
cp install.bat rel/
|
||||
cp uninstall.bat rel/
|
||||
cp LICENSE.* rel/
|
||||
cp *.lnk rel/
|
||||
cp *.url rel/
|
||||
cp *.bat rel/
|
||||
cp *.vbs rel/
|
||||
|
||||
cab: cop
|
||||
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
|
||||
|
||||
30
makewinx.cfg
30
makewinx.cfg
@@ -39,10 +39,21 @@ FILE3="wslbridge.exe"
|
||||
FILE4="wslbridge-backend"
|
||||
FILE5="LICENSE.mintty"
|
||||
FILE6="LICENSE.wslbridge"
|
||||
FILE7="Bash on UoW in Mintty.lnk"
|
||||
FILE8="wsl.bat"
|
||||
FILE9="install.bat"
|
||||
FILE10="uninstall.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"
|
||||
FILE19="zoo.exe"
|
||||
FILE20="po.zoo"
|
||||
FILE21=mkshortcut.vbs
|
||||
|
||||
[SourceFiles]
|
||||
SourceFiles0=.
|
||||
@@ -59,4 +70,15 @@ SourceFiles0=.
|
||||
%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.
@@ -1,27 +1,29 @@
|
||||
@echo off
|
||||
|
||||
|
||||
:undeploy
|
||||
|
||||
rem currently not removing software
|
||||
rem in any case, at least the config file (home\...) should not be removed
|
||||
if "%installdir%" == "" set installdir=%LOCALAPPDATA%\wsltty
|
||||
|
||||
|
||||
:shortcuts
|
||||
|
||||
rem delete Desktop Shortcut and Start Menu Shortcut
|
||||
del "%USERPROFILE%\Desktop\Bash on UoW in Mintty.lnk"
|
||||
del "%APPDATA%\Microsoft\Windows\Start Menu\Bash on UoW in Mintty.lnk"
|
||||
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
|
||||
: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
|
||||
call "%installdir%\config-context-menu.bat" /U
|
||||
|
||||
reg delete "%userdirname%\wsltty" /f
|
||||
reg delete "%userdirpane%\wsltty" /f
|
||||
|
||||
: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
|
||||
|
||||
5
wsl.bat
5
wsl.bat
@@ -2,11 +2,14 @@
|
||||
|
||||
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
|
||||
|
||||
"%LOCALAPPDATA%\wsltty\bin\mintty.exe" -o Locale=C -o Charset=UTF-8 -i "%LOCALAPPDATA%\lxss\bash.ico" /bin/wslbridge -t /bin/bash -l
|
||||
"%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