mirror of
https://github.com/mintty/wsltty.git
synced 2025-11-05 01:21:53 +00:00
Compare commits
28 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
64c2d04b56 | ||
|
|
e283f413ba | ||
|
|
4ce4b11094 | ||
|
|
84c16fb927 | ||
|
|
65bf9273ad | ||
|
|
36a39d99de | ||
|
|
be761f3aab | ||
|
|
c3b062c00b | ||
|
|
149b1a6f1a | ||
|
|
9fd7a1135b | ||
|
|
92a7cceae2 | ||
|
|
1ef83d72e1 | ||
|
|
9be0b3ec10 | ||
|
|
276fb6ae88 | ||
|
|
288c56a3d2 | ||
|
|
082eb760eb | ||
|
|
d5cc2bfe77 | ||
|
|
1e453b05e9 | ||
|
|
ee8d3b0678 | ||
|
|
2f69d2740d | ||
|
|
4a55503707 | ||
|
|
48f69cb11f | ||
|
|
0a39c664e2 | ||
|
|
fecb6c49af | ||
|
|
b017982c19 | ||
|
|
f6016239df | ||
|
|
b5349bf6db | ||
|
|
3b1ecb2e01 |
@@ -26,3 +26,8 @@ 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.
|
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
|
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.
|
under the terms of the LGPLv3; see LICENSE.Oxygen for details.
|
||||||
|
|
||||||
|
The colour schemes / theme files bundled with mintty are included
|
||||||
|
under various licenses. The source and license or permission are
|
||||||
|
quoted in the respective theme files.
|
||||||
|
|
||||||
|
|||||||
@@ -1,21 +1,21 @@
|
|||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
|
|
||||||
Copyright (c) 2016 Ryan Prichard
|
Copyright (c) 2016 Ryan Prichard
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to
|
of this software and associated documentation files (the "Software"), to
|
||||||
deal in the Software without restriction, including without limitation the
|
deal in the Software without restriction, including without limitation the
|
||||||
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
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
|
sell copies of the Software, and to permit persons to whom the Software is
|
||||||
furnished to do so, subject to the following conditions:
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
The above copyright notice and this permission notice shall be included in
|
||||||
all copies or substantial portions of the Software.
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
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
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||||
IN THE SOFTWARE.
|
IN THE SOFTWARE.
|
||||||
|
|||||||
101
README.md
101
README.md
@@ -1,18 +1,19 @@
|
|||||||
Mintty as a terminal for Bash on Ubuntu on Windows / WSL.
|
Mintty as a terminal for WSL (Windows Subsystem for Linux).
|
||||||
|
|
||||||
|
<img align=right src=wsltty.png>
|
||||||
|
|
||||||
### Overview ###
|
### Overview ###
|
||||||
|
|
||||||
WSLtty components
|
WSLtty components
|
||||||
* wsltty package components (see below) in the user’s local application folder
|
* wsltty package components (see below) in the user’s local application folder
|
||||||
`%LOCALAPPDATA%` (where WSL is also installed)
|
`%LOCALAPPDATA%`
|
||||||
* a wsltty configuration directory in the user’s application folder `%APPDATA%`;
|
* a wsltty configuration directory in the user’s application folder `%APPDATA%`
|
||||||
“home”-located configuration files from a previously installed version
|
(“home”-located configuration files from a previously installed version
|
||||||
will be migrated to the new default location
|
will be migrated to the new default location)
|
||||||
* Start Menu and Desktop shortcuts to start a WSL bash (with some variations, see below)
|
* Start Menu shortcuts to start WSL terminals
|
||||||
* optional context menu entries for Windows Explorer to start a WSL bash in the respective folder
|
* `*.bat` scripts to invoke WSL terminals from the command line
|
||||||
* install/uninstall context menu items from Start Menu subfolder
|
* optional context menu entries for Windows Explorer to start WSL terminals in the respective folder
|
||||||
* `wsl*.bat` scripts to invoke wsltty manually (with some variations and invocation options, see below)
|
* install/uninstall context menu items from Start Menu subfolder `WSLtty`
|
||||||
* an uninstall script that can be invoked manually to remove shortcuts and context menu entries
|
|
||||||
|
|
||||||
### Installation ###
|
### Installation ###
|
||||||
|
|
||||||
@@ -34,6 +35,7 @@ Note this has to be done within a Cygwin environment.
|
|||||||
|
|
||||||
#### Installation to non-default locations ####
|
#### Installation to non-default locations ####
|
||||||
|
|
||||||
|
(For experts)
|
||||||
Within the installation process, provide parameters to the script `install.bat`.
|
Within the installation process, provide parameters to the script `install.bat`.
|
||||||
The optional first parameter designates the installation target,
|
The optional first parameter designates the installation target,
|
||||||
the optional second parameter designates the configuration directory.
|
the optional second parameter designates the configuration directory.
|
||||||
@@ -41,36 +43,52 @@ the optional second parameter designates the configuration directory.
|
|||||||
### Invocation ###
|
### Invocation ###
|
||||||
|
|
||||||
WSLtty can be invoked with
|
WSLtty can be invoked with
|
||||||
* installed desktop shortcuts or Start menu shortcuts
|
* installed Start Menu shortcuts (or Desktop shortcuts if copied there)
|
||||||
* wsl*.bat scripts generated into the installation directory
|
* *.bat scripts
|
||||||
* Explorer context menu (if installed from the Start menu)
|
* Explorer context menu (if installed from the Start Menu `WSLtty` subfolder)
|
||||||
|
|
||||||
Starting the mintty terminal directly from the WSLtty installation location
|
Starting the mintty terminal directly from the WSLtty installation location
|
||||||
is discouraged because that would bypass the `--configdir` option.
|
is discouraged because that would bypass essential options.
|
||||||
|
|
||||||
### Configuration ###
|
### 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 ####
|
#### Start Menu and Desktop shortcuts ####
|
||||||
|
|
||||||
The Start Menu subfolder WSLtty offers three shortcuts:
|
In the Start Menu, the following shortcuts are installed:
|
||||||
* `WSL Bash % in Mintty` to start a WSL bash in the Windows %USERPROFILE% home
|
* For each installed WSL distribution D, D` Terminal` to start in the WSL user home
|
||||||
* `WSL Bash ~ in Mintty` to start a WSL bash in the WSL user home
|
* `WSL Terminal` to start the default WSL distribution (as configured with the Windows tool `wslconfig`)
|
||||||
* `WSL Bash -l in Mintty` to start a WSL login bash
|
|
||||||
|
|
||||||
To ensure a login bash to start in your Linux home directory,
|
In the Start Menu subfolder WSLtty, the following shortcuts are installed:
|
||||||
add a `cd` command to your `$HOME/.profile` on Linux side.
|
* For each installed WSL distribution D, D` Terminal %` to start in the Windows %USERPROFILE% home
|
||||||
|
* `WSL Terminal %` to start the default WSL distribution in the Windows %USERPROFILE% home
|
||||||
|
|
||||||
|
One Desktop shortcut is installed:
|
||||||
|
* `WSL Terminal` to start the default WSL distribution (as configured with the Windows tool `wslconfig`)
|
||||||
|
|
||||||
|
Other, distribution-specific shortcuts can be copied to the desktop
|
||||||
|
from the Start Menu if desired.
|
||||||
|
|
||||||
|
#### Command line scripts `wsl*.bat` ####
|
||||||
|
|
||||||
|
WSLtty installs the following scripts into `%LOCALAPPDATA%\Microsoft\WindowsApps`
|
||||||
|
(and a copy in its application folder `%LOCALAPPDATA%\wsltty`):
|
||||||
|
|
||||||
|
* For each installed WSL distribution D, D`.bat` to start in the current folder/directory
|
||||||
|
* For each installed WSL distribution D, D`~.bat` to start in the WSL user home
|
||||||
|
* `WSL.bat` and `WSL~.bat` to start the default WSL distribution
|
||||||
|
|
||||||
|
Given that `%LOCALAPPDATA%\Microsoft\WindowsApps` is in your PATH,
|
||||||
|
the scripts can be invoked from cmd.exe, PowerShell, or via WIN+R.
|
||||||
|
|
||||||
|
#### Context menu entries ####
|
||||||
|
|
||||||
|
WSLtty provides context menu entries for all installed WSL distributions
|
||||||
|
and one for the configured default distribution,
|
||||||
|
to start a respective WSL terminal in a specific folder from an Explorer window.
|
||||||
|
They are not installed by default.
|
||||||
|
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`.
|
||||||
|
|
||||||
#### Mintty settings ####
|
#### Mintty settings ####
|
||||||
|
|
||||||
@@ -101,19 +119,22 @@ Note:
|
|||||||
|
|
||||||
#### Shell selection ####
|
#### Shell selection ####
|
||||||
|
|
||||||
To invoke your favourite shell, simply replace `/bin/bash` with its pathname
|
The WSLtty deployment does not impose a shell preference anymore.
|
||||||
in the Desktop shortcuts, `wsl*.bat` invocation scripts,
|
However, the intermediate gateways (`wslbridge` and its backend and the `bash.exe` Windows launcher)
|
||||||
or Explorer context menu commands (configured in `config-context-menu.bat`).
|
are also involved. To invoke your favourite shell, you may append
|
||||||
|
a shell pathname to the mintty invocation (in shortcuts, scripts, or context menu entries),
|
||||||
|
or handle shell replacement within the WSL startup scripts (esp. `.profile`).
|
||||||
|
|
||||||
### Components ###
|
### Components and Credits ###
|
||||||
|
|
||||||
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),
|
(with further screenshots),
|
||||||
and the [Mintty Wiki](https://github.com/mintty/mintty/wiki),
|
the [Mintty manual page](http://mintty.github.io/mintty.1.html),
|
||||||
|
<br>and the [Mintty Wiki](https://github.com/mintty/mintty/wiki),
|
||||||
including a [Hints and Tips page](https://github.com/mintty/mintty/wiki/Tips).
|
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)).
|
||||||
|
|
||||||
For interacting with WSL, it uses [wslbridge](https://github.com/rprichard/wslbridge).
|
For interacting with WSL, it uses [wslbridge](https://github.com/rprichard/wslbridge).
|
||||||
|
Many thanks for this enabling gateway go especially to Ryan Prichard.
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
add default to context menu.lnk
Executable file
BIN
add default to context menu.lnk
Executable file
Binary file not shown.
Binary file not shown.
@@ -1,59 +0,0 @@
|
|||||||
@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
|
|
||||||
230
config-distros.sh
Executable file
230
config-distros.sh
Executable file
@@ -0,0 +1,230 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
PATH=/bin:$PATH
|
||||||
|
|
||||||
|
contextmenu=false
|
||||||
|
remove=false
|
||||||
|
alldistros=true
|
||||||
|
config=true
|
||||||
|
|
||||||
|
case "`basename $0`" in
|
||||||
|
wsl*)
|
||||||
|
config=false;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
-info)
|
||||||
|
config=false
|
||||||
|
shift;;
|
||||||
|
-shortcuts-remove)
|
||||||
|
remove=true
|
||||||
|
shift;;
|
||||||
|
-contextmenu)
|
||||||
|
contextmenu=true
|
||||||
|
shift;;
|
||||||
|
-contextmenu-default)
|
||||||
|
contextmenu=true
|
||||||
|
alldistros=false
|
||||||
|
shift;;
|
||||||
|
-contextmenu-remove)
|
||||||
|
contextmenu=true
|
||||||
|
remove=true
|
||||||
|
direckey='/HKEY_CURRENT_USER/Software/Classes/Directory'
|
||||||
|
|
||||||
|
regtool list "$direckey/shell" 2>/dev/null |
|
||||||
|
while read name
|
||||||
|
do
|
||||||
|
case `regtool get "$direckey/shell/$name/command/"` in
|
||||||
|
*bin\\mintty.exe*/bin/wslbridge*|*bin\\mintty.exe*--WSL*)
|
||||||
|
regtool remove "$direckey/shell/$name/command"
|
||||||
|
regtool remove "$direckey/shell/$name"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
regtool list "$direckey/Background/shell" 2>/dev/null |
|
||||||
|
while read name
|
||||||
|
do
|
||||||
|
case `regtool get "$direckey/Background/shell/$name/command/"` in
|
||||||
|
*bin\\mintty.exe*/bin/wslbridge*|*bin\\mintty.exe*--WSL*)
|
||||||
|
regtool remove "$direckey/Background/shell/$name/command"
|
||||||
|
regtool remove "$direckey/Background/shell/$name"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
exit
|
||||||
|
shift;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# test w/o WSL: call this script with REGTOOLFAKE=true dash config-distros.sh
|
||||||
|
if ${REGTOOLFAKE:-false}
|
||||||
|
then
|
||||||
|
regtool () {
|
||||||
|
case "$1" in
|
||||||
|
-*) shift;;
|
||||||
|
esac
|
||||||
|
key=`echo $2 | sed -e 's,.*{\(.*\)}.*,\1,' -e t -e d`
|
||||||
|
case "$1.$2" in
|
||||||
|
list.*)
|
||||||
|
if $contextmenu
|
||||||
|
then echo "{0}"
|
||||||
|
else echo "{1}"; echo "{2}"
|
||||||
|
fi;;
|
||||||
|
get.*/DistributionName)
|
||||||
|
echo "distro$key";;
|
||||||
|
get.*/BasePath)
|
||||||
|
echo "C:\\Program\\{$key}\\State";;
|
||||||
|
get.*/PackageFamilyName)
|
||||||
|
echo "distro{$key}";;
|
||||||
|
get.*/PackageFullName)
|
||||||
|
echo "C:\\Program\\{$key}";;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# dash built-in echo enforces interpretation of \t etc
|
||||||
|
echoc () {
|
||||||
|
cmd /c echo $*
|
||||||
|
}
|
||||||
|
|
||||||
|
if $config
|
||||||
|
then while read line; do echo "$line"; done <</EOB > mkbat.bat
|
||||||
|
@echo off
|
||||||
|
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
|
||||||
|
/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"
|
||||||
|
|
||||||
|
#(regtool list "$lxss" 2>/dev/null && echo || echo "No WSL packages registered" >&2) |
|
||||||
|
(
|
||||||
|
if $alldistros
|
||||||
|
then regtool list "$lxss" 2>/dev/null
|
||||||
|
else true
|
||||||
|
fi && echo || echo "No WSL packages registered" >&2) |
|
||||||
|
while read guid
|
||||||
|
do
|
||||||
|
ok=false
|
||||||
|
case $guid in
|
||||||
|
{*)
|
||||||
|
distro=`regtool get "$lxss/$guid/DistributionName"`
|
||||||
|
case "$distro" in
|
||||||
|
Legacy)
|
||||||
|
name="Bash on Windows"
|
||||||
|
launch=
|
||||||
|
launcher="$SYSTEMROOT/System32/bash.exe"
|
||||||
|
;;
|
||||||
|
*) name="$distro"
|
||||||
|
launch="$distro"
|
||||||
|
launcher="$LOCALAPPDATA/Microsoft/WindowsApps/$distro.exe"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
basepath=`regtool get "$lxss/$guid/BasePath"`
|
||||||
|
if package=`regtool -q get "$lxss/$guid/PackageFamilyName"`
|
||||||
|
then
|
||||||
|
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"
|
||||||
|
fi
|
||||||
|
root="$basepath/rootfs"
|
||||||
|
else
|
||||||
|
icon="%LOCALAPPDATA%/lxss/bash.ico"
|
||||||
|
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"'
|
||||||
|
#if [ -z "$launch" ]
|
||||||
|
#then bridgeargs='-t /bin/bash'
|
||||||
|
#else bridgeargs='-l "'"$launch"'" -t /bin/bash'
|
||||||
|
#fi
|
||||||
|
bridgeargs='--distro-guid "'"$guid"'" -t /bin/bash'
|
||||||
|
bridgeargs='--distro-guid "'"$guid"'" -t'
|
||||||
|
|
||||||
|
ok=true;;
|
||||||
|
"") # WSL default installation
|
||||||
|
distro=
|
||||||
|
name=WSL
|
||||||
|
icon="%LOCALAPPDATA%/wsltty/wsl.ico"
|
||||||
|
minttyargs='--WSL= --configdir="%APPDATA%\wsltty"'
|
||||||
|
bridgeargs='-t'
|
||||||
|
|
||||||
|
ok=true;;
|
||||||
|
esac
|
||||||
|
echoc "distro '$distro'"
|
||||||
|
echoc "- name '$name'"
|
||||||
|
echoc "- guid $guid"
|
||||||
|
echoc "- (launcher $launcher)"
|
||||||
|
echoc "- icon $icon"
|
||||||
|
echoc "- root $root"
|
||||||
|
target='%LOCALAPPDATA%\wsltty\bin\mintty.exe'
|
||||||
|
bridgeargs=" "
|
||||||
|
|
||||||
|
if $ok && $config
|
||||||
|
then
|
||||||
|
export target minttyargs bridgeargs icon
|
||||||
|
|
||||||
|
if $contextmenu
|
||||||
|
then
|
||||||
|
# context menu entries
|
||||||
|
#cmd /C mkcontext "$name"
|
||||||
|
direckey='HKEY_CURRENT_USER\Software\Classes\Directory'
|
||||||
|
if $remove
|
||||||
|
then
|
||||||
|
reg delete "$direckey\\shell\\$name" /f
|
||||||
|
reg delete "$direckey\\Background\\shell\\$name" /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
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# invocation shortcuts and scripts
|
||||||
|
if $remove
|
||||||
|
then
|
||||||
|
cmd /C del "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\$name Terminal.lnk"
|
||||||
|
cmd /C del "%LOCALAPPDATA%\\Microsoft\\WindowsApps\\$name.bat"
|
||||||
|
cmd /C del "%LOCALAPPDATA%\\Microsoft\\WindowsApps\\$name~.bat"
|
||||||
|
else
|
||||||
|
# desktop shortcut in %USERPROFILE% -> Start Menu - WSLtty
|
||||||
|
cscript /nologo mkshortcut.vbs "/name:$name Terminal %"
|
||||||
|
cmd /C copy "$name Terminal %.lnk" "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\WSLtty"
|
||||||
|
|
||||||
|
# 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"
|
||||||
|
|
||||||
|
# prepare versions to target WSL home directory
|
||||||
|
#bridgeargs="-C~ $bridgeargs"
|
||||||
|
minttyargs="$minttyargs -~"
|
||||||
|
|
||||||
|
# desktop shortcut in ~ -> Start Menu
|
||||||
|
cscript /nologo mkshortcut.vbs "/name:$name Terminal"
|
||||||
|
cmd /C copy "$name Terminal.lnk" "%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs"
|
||||||
|
|
||||||
|
# default desktop shortcut in ~ -> Desktop
|
||||||
|
if [ "$name" = "WSL" ]
|
||||||
|
then cmd /C copy "$name Terminal.lnk" "%USERPROFILE%\\Desktop"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 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"
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
BIN
configure WSL shortcuts.lnk
Executable file
BIN
configure WSL shortcuts.lnk
Executable file
Binary file not shown.
88
install.bat
88
install.bat
@@ -14,72 +14,71 @@ if not "%2" == "" set refconfigdir=%2 && set configdir=%2
|
|||||||
:deploy
|
:deploy
|
||||||
|
|
||||||
mkdir "%installdir%"
|
mkdir "%installdir%"
|
||||||
|
|
||||||
|
rem clean up previous installation artefacts
|
||||||
|
del /Q "%installdir%\*.bat"
|
||||||
|
del /Q "%installdir%\*.lnk"
|
||||||
|
|
||||||
copy LICENSE.mintty "%installdir%"
|
copy LICENSE.mintty "%installdir%"
|
||||||
copy LICENSE.wslbridge "%installdir%"
|
copy LICENSE.wslbridge "%installdir%"
|
||||||
|
|
||||||
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"
|
|
||||||
|
|
||||||
copy "add to context menu.lnk" "%installdir%"
|
copy "add to context menu.lnk" "%installdir%"
|
||||||
|
copy "add default to context menu.lnk" "%installdir%"
|
||||||
copy "remove from context menu.lnk" "%installdir%"
|
copy "remove from context menu.lnk" "%installdir%"
|
||||||
|
copy "configure WSL shortcuts.lnk" "%installdir%"
|
||||||
|
copy wsl.ico "%installdir%"
|
||||||
|
copy config-distros.sh "%installdir%"
|
||||||
|
copy mkshortcut.vbs "%installdir%"
|
||||||
|
|
||||||
|
if not exist "%installdir%\bin" goto instbin
|
||||||
|
rem move previous programs possibly in use out of the way
|
||||||
|
del /Q "%installdir%\bin\*.old"
|
||||||
|
ren "%installdir%\bin\cygwin1.dll" cygwin1.dll.old
|
||||||
|
ren "%installdir%\bin\cygwin-console-helper.exe" cygwin-console-helper.exe.old
|
||||||
|
ren "%installdir%\bin\mintty.exe" mintty.exe.old
|
||||||
|
ren "%installdir%\bin\wslbridge.exe" wslbridge.exe.old
|
||||||
|
ren "%installdir%\bin\wslbridge-backend" wslbridge-backend.old
|
||||||
|
del /Q "%installdir%\bin\*.old"
|
||||||
|
|
||||||
|
:instbin
|
||||||
mkdir "%installdir%\bin"
|
mkdir "%installdir%\bin"
|
||||||
copy cygwin1.dll "%installdir%\bin"
|
copy cygwin1.dll "%installdir%\bin"
|
||||||
copy cygwin-console-helper.exe "%installdir%\bin"
|
copy cygwin-console-helper.exe "%installdir%\bin"
|
||||||
rem copy dash.exe "%installdir%\bin"
|
|
||||||
copy mintty.exe "%installdir%\bin"
|
copy mintty.exe "%installdir%\bin"
|
||||||
copy zoo.exe "%installdir%\bin"
|
|
||||||
copy wslbridge.exe "%installdir%\bin"
|
copy wslbridge.exe "%installdir%\bin"
|
||||||
copy wslbridge-backend "%installdir%\bin"
|
copy wslbridge-backend "%installdir%\bin"
|
||||||
|
|
||||||
|
copy dash.exe "%installdir%\bin"
|
||||||
|
copy regtool.exe "%installdir%\bin"
|
||||||
|
copy zoo.exe "%installdir%\bin"
|
||||||
|
|
||||||
rem create system config directory and copy config archive
|
rem create system config directory and copy config archive
|
||||||
mkdir "%installdir%\usr\share\mintty\lang"
|
mkdir "%installdir%\usr\share\mintty\lang"
|
||||||
copy po.zoo "%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"
|
||||||
|
|
||||||
|
|
||||||
: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
|
rem create Start Menu Folder
|
||||||
set smf=%APPDATA%\Microsoft\Windows\Start Menu\Programs\WSLtty
|
set smf=%APPDATA%\Microsoft\Windows\Start Menu\Programs\WSLtty
|
||||||
mkdir "%smf%"
|
mkdir "%smf%"
|
||||||
|
|
||||||
|
rem clean up previous installation
|
||||||
|
del /Q "%smf%\*.lnk"
|
||||||
|
|
||||||
copy "wsltty home & help.url" "%smf%"
|
copy "wsltty home & help.url" "%smf%"
|
||||||
copy "WSL Bash %% in Mintty.lnk" "%smf%"
|
copy "add to context menu.lnk" "%smf%"
|
||||||
copy "WSL Bash ~ in Mintty.lnk" "%smf%"
|
copy "add default to context menu.lnk" "%smf%"
|
||||||
copy "WSL Bash -l in Mintty.lnk" "%smf%"
|
copy "remove from context menu.lnk" "%smf%"
|
||||||
mkdir "%smf%\context menu shortcuts"
|
copy "configure WSL shortcuts.lnk" "%smf%"
|
||||||
copy "add to context menu.lnk" "%smf%\context menu shortcuts"
|
rem clean up previous installation
|
||||||
copy "remove from context menu.lnk" "%smf%\context menu shortcuts"
|
rmdir /S /Q "%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
|
rem unpack config files in system config directory
|
||||||
cd /D "%installdir%\usr\share\mintty\lang"
|
cd /D "%installdir%\usr\share\mintty\lang"
|
||||||
"%installdir%\bin\zoo" xO po
|
"%installdir%\bin\zoo" xO lang
|
||||||
|
cd /D "%installdir%\usr\share\mintty\themes"
|
||||||
|
"%installdir%\bin\zoo" xO themes
|
||||||
|
|
||||||
|
|
||||||
:migrate configuration
|
:migrate configuration
|
||||||
@@ -108,5 +107,10 @@ mkdir "%configdir%\themes"
|
|||||||
rem create config file if it does not yet exist
|
rem create config file if it does not yet exist
|
||||||
if not exist "%configdir%\config" echo # To use common configuration in %%APPDATA%%\mintty, simply remove this file>"%configdir%\config"
|
if not exist "%configdir%\config" echo # To use common configuration in %%APPDATA%%\mintty, simply remove this file>"%configdir%\config"
|
||||||
|
|
||||||
|
rem distro-specific stuff: shortcuts and launch scripts
|
||||||
|
cd "%installdir%"
|
||||||
|
bin\dash.exe "%installdir%\config-distros.sh"
|
||||||
|
rem bin\dash.exe "%installdir%\config-distros.sh" -contextmenu
|
||||||
|
|
||||||
|
|
||||||
:end
|
:end
|
||||||
|
|||||||
87
makefile
87
makefile
@@ -6,23 +6,39 @@
|
|||||||
# make pkg to build an installer, bypassing the system checks
|
# make pkg to build an installer, bypassing the system checks
|
||||||
# make wsltty to build an installer using the local copy of mintty
|
# make wsltty to build an installer using the local copy of mintty
|
||||||
|
|
||||||
all: check pkg
|
|
||||||
|
|
||||||
# wsltty release
|
# wsltty release
|
||||||
ver=0.7.7.2
|
ver=1.8.3.2
|
||||||
|
|
||||||
|
##############################
|
||||||
# mintty release version
|
# mintty release version
|
||||||
minttyver=2.7.7
|
minttyver=2.8.3
|
||||||
|
|
||||||
|
# or mintty branch or commit version
|
||||||
#minttyver=master
|
#minttyver=master
|
||||||
|
|
||||||
# wslbridge backend version
|
##############################
|
||||||
wslbridgever=0.2.1
|
# wslbridge binary package; may be overridden below
|
||||||
# wslbridge frontend version
|
wslbridge=wslbridge-package
|
||||||
# release 0.2.0 does not have cygwin_internal(CW_SYNC_WINENV) yet;
|
wslbridgever=0.2.4
|
||||||
# therefore using "master" below
|
|
||||||
#wslbridge-frontend=wslbridge-frontend
|
# or wslbridge branch or commit to build from source;
|
||||||
# release 0.2.1 is updated and complete, no separate frontend build needed:
|
# also set wslbridge-commit
|
||||||
wslbridge-frontend=
|
#wslbridge=wslbridge-frontend wslbridge-backend
|
||||||
|
|
||||||
|
# release 0.2.0 does not have cygwin_internal(CW_SYNC_WINENV) yet:
|
||||||
|
#wslbridge-commit=master
|
||||||
|
|
||||||
|
# use --distro-guid option (merged into 0.2.4):
|
||||||
|
#wslbridge-commit=cb22e3f6f989cefe5b6599d3c04422ded74db664
|
||||||
|
|
||||||
|
# after 0.2.4, from branch login-mode:
|
||||||
|
wslbridge-commit=04a060505860915c99bc336dbeb80269771a80b7
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# default target
|
||||||
|
|
||||||
|
all: check pkg
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
# target checking and some defs
|
# target checking and some defs
|
||||||
@@ -62,23 +78,32 @@ check:
|
|||||||
#############################################################################
|
#############################################################################
|
||||||
# generation
|
# generation
|
||||||
|
|
||||||
wslbridge: wslbridge-backend $(wslbridge-frontend)
|
wslbridge: $(wslbridge)
|
||||||
|
|
||||||
wslbridge-backend:
|
wslbridge-package:
|
||||||
$(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
|
tr -d '\015' < wslbridge-$(wslbridgever)-$(sys)/LICENSE.txt > LICENSE.wslbridge
|
||||||
|
|
||||||
wslbridge-frontend:
|
wslbridge-source: wslbridge-$(wslbridge-commit).zip
|
||||||
$(wgeto) https://github.com/rprichard/wslbridge/archive/master.zip -o wslbridge-master.zip
|
unzip -o wslbridge-$(wslbridge-commit).zip
|
||||||
unzip -o wslbridge-master.zip
|
tr -d '\015' < wslbridge-$(wslbridge-commit)/LICENSE.txt > LICENSE.wslbridge
|
||||||
cd wslbridge-master/frontend; make
|
|
||||||
strip wslbridge-master/out/wslbridge.exe
|
wslbridge-$(wslbridge-commit).zip:
|
||||||
|
$(wgeto) https://github.com/rprichard/wslbridge/archive/$(wslbridge-commit).zip -o wslbridge-$(wslbridge-commit).zip
|
||||||
|
|
||||||
|
wslbridge-frontend: wslbridge-source
|
||||||
|
cd wslbridge-$(wslbridge-commit)/frontend; make
|
||||||
|
strip wslbridge-$(wslbridge-commit)/out/wslbridge.exe
|
||||||
mkdir -p bin
|
mkdir -p bin
|
||||||
cp wslbridge-master/out/wslbridge.exe bin/
|
cp wslbridge-$(wslbridge-commit)/out/wslbridge.exe bin/
|
||||||
cp wslbridge-master/LICENSE.txt LICENSE.wslbridge
|
|
||||||
|
wslbridge-backend: wslbridge-source
|
||||||
|
cd wslbridge-$(wslbridge-commit)/backend; wslbridge make
|
||||||
|
mkdir -p bin
|
||||||
|
cp wslbridge-$(wslbridge-commit)/out/wslbridge-backend bin/
|
||||||
|
|
||||||
mintty: mintty-get mintty-build
|
mintty: mintty-get mintty-build
|
||||||
|
|
||||||
@@ -86,18 +111,23 @@ mintty-get:
|
|||||||
$(wgeto) https://github.com/mintty/mintty/archive/$(minttyver).zip -o mintty-$(minttyver).zip
|
$(wgeto) https://github.com/mintty/mintty/archive/$(minttyver).zip -o mintty-$(minttyver).zip
|
||||||
unzip -o mintty-$(minttyver).zip
|
unzip -o mintty-$(minttyver).zip
|
||||||
|
|
||||||
|
wslbuild=LDFLAGS="-static -static-libgcc -s"
|
||||||
|
wslversion=VERSION_SUFFIX="– wsltty $(ver)" WSLTTY_VERSION="$(ver)"
|
||||||
|
|
||||||
mintty-build:
|
mintty-build:
|
||||||
cd mintty-$(minttyver)/src; make LDFLAGS="-static -static-libgcc -s"
|
cd mintty-$(minttyver)/src; make $(wslbuild) $(wslversion)
|
||||||
mkdir -p bin
|
mkdir -p bin
|
||||||
cp mintty-$(minttyver)/bin/mintty.exe bin/
|
cp mintty-$(minttyver)/bin/mintty.exe bin/
|
||||||
cp mintty-$(minttyver)/LICENSE LICENSE.mintty
|
cp mintty-$(minttyver)/LICENSE LICENSE.mintty
|
||||||
cd mintty-$(minttyver)/lang; zoo a po *.po; mv po.zoo ../../
|
cd mintty-$(minttyver)/lang; zoo a lang *.po; mv lang.zoo ../../
|
||||||
|
cd mintty-$(minttyver)/themes; zoo a themes *[!~]; mv themes.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/dash.exe bin/
|
||||||
|
cp /bin/regtool.exe bin/
|
||||||
cp /bin/zoo.exe bin/
|
cp /bin/zoo.exe bin/
|
||||||
|
|
||||||
cop: ver
|
cop: ver
|
||||||
@@ -106,16 +136,21 @@ cop: ver
|
|||||||
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/dash.exe rel/
|
||||||
|
cp bin/regtool.exe rel/
|
||||||
cp bin/mintty.exe rel/
|
cp bin/mintty.exe rel/
|
||||||
cp bin/zoo.exe rel/
|
cp bin/zoo.exe rel/
|
||||||
cp po.zoo rel/
|
cp lang.zoo rel/
|
||||||
|
cp themes.zoo rel/
|
||||||
cp bin/wslbridge.exe rel/
|
cp bin/wslbridge.exe rel/
|
||||||
cp bin/wslbridge-backend rel/
|
cp bin/wslbridge-backend rel/
|
||||||
cp LICENSE.* rel/
|
cp LICENSE.* rel/
|
||||||
|
cp VERSION rel/
|
||||||
cp *.lnk rel/
|
cp *.lnk rel/
|
||||||
|
cp *.ico rel/
|
||||||
cp *.url rel/
|
cp *.url rel/
|
||||||
cp *.bat rel/
|
cp *.bat rel/
|
||||||
|
cp *.sh rel/
|
||||||
cp *.vbs rel/
|
cp *.vbs rel/
|
||||||
|
|
||||||
cab: cop
|
cab: cop
|
||||||
|
|||||||
30
makewinx.cfg
30
makewinx.cfg
@@ -23,9 +23,9 @@ UserQuietInstCmd=%UserQuietInstCmd%
|
|||||||
SourceFiles=SourceFiles
|
SourceFiles=SourceFiles
|
||||||
|
|
||||||
[Strings]
|
[Strings]
|
||||||
InstallPrompt=Install Mintty terminal for WSL / Ubuntu on Windows?
|
InstallPrompt=Install Mintty terminal for WSL (Windows Subsystem for Linux)?
|
||||||
DisplayLicense=
|
DisplayLicense=
|
||||||
FinishMessage=Mintty for WSL installed - for documentation see https://github.com/mintty/mintty/wiki/Tips
|
FinishMessage=Mintty for WSL installed - for documentation see https://github.com/mintty/wsltty
|
||||||
TargetName=wsltty-%version%-install.exe
|
TargetName=wsltty-%version%-install.exe
|
||||||
FriendlyName=wsltty
|
FriendlyName=wsltty
|
||||||
AppLaunched=cmd.exe /c install.bat
|
AppLaunched=cmd.exe /c install.bat
|
||||||
@@ -39,21 +39,22 @@ FILE3="wslbridge.exe"
|
|||||||
FILE4="wslbridge-backend"
|
FILE4="wslbridge-backend"
|
||||||
FILE5="LICENSE.mintty"
|
FILE5="LICENSE.mintty"
|
||||||
FILE6="LICENSE.wslbridge"
|
FILE6="LICENSE.wslbridge"
|
||||||
FILE7="WSL Bash % in Mintty.lnk"
|
FILE7="config-distros.sh"
|
||||||
FILE8="WSL Bash ~ in Mintty.lnk"
|
FILE8="configure WSL shortcuts.lnk"
|
||||||
FILE9="WSL Bash -l in Mintty.lnk"
|
FILE9="mkshortcut.vbs"
|
||||||
FILE10="wsl.bat"
|
FILE10="VERSION"
|
||||||
FILE11="wsl~.bat"
|
FILE11="dash.exe"
|
||||||
FILE12="wsl-l.bat"
|
FILE12="regtool.exe"
|
||||||
FILE13="install.bat"
|
FILE13="install.bat"
|
||||||
FILE14="uninstall.bat"
|
FILE14="uninstall.bat"
|
||||||
FILE15="config-context-menu.bat"
|
FILE15="wsl.ico"
|
||||||
FILE16="add to context menu.lnk"
|
FILE16="add to context menu.lnk"
|
||||||
FILE17="remove from context menu.lnk"
|
FILE17="add default to context menu.lnk"
|
||||||
FILE18="wsltty home & help.url"
|
FILE18="remove from context menu.lnk"
|
||||||
FILE19="zoo.exe"
|
FILE19="wsltty home & help.url"
|
||||||
FILE20="po.zoo"
|
FILE20="zoo.exe"
|
||||||
FILE21=mkshortcut.vbs
|
FILE21="lang.zoo"
|
||||||
|
FILE22="themes.zoo"
|
||||||
|
|
||||||
[SourceFiles]
|
[SourceFiles]
|
||||||
SourceFiles0=.
|
SourceFiles0=.
|
||||||
@@ -81,4 +82,5 @@ SourceFiles0=.
|
|||||||
%FILE19%=
|
%FILE19%=
|
||||||
%FILE20%=
|
%FILE20%=
|
||||||
%FILE21%=
|
%FILE21%=
|
||||||
|
%FILE22%=
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,20 @@
|
|||||||
rem cscript mkshortcut.vbs [/param:arg] /target:link
|
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 /target:%LOCALAPPDATA%\wsltty\bin\mintty.exe
|
||||||
rem /workingdir:%USERPROFILE%
|
rem /workingdir:%USERPROFILE%
|
||||||
rem /icon:%LOCALAPPDATA%\lxss\bash.ico
|
rem /icon:%LOCALAPPDATA%\wsltty\wsl.ico
|
||||||
|
rem deprecated: /icon:%LOCALAPPDATA%\lxss\bash.ico
|
||||||
|
rem deprecated: %
|
||||||
|
rem /arguments:--wsl -o Locale=C -o Charset=UTF-8 /bin/wslbridge -t /bin/bash
|
||||||
|
rem deprecated: ~
|
||||||
|
rem /arguments:--wsl -o Locale=C -o Charset=UTF-8 /bin/wslbridge -C~ -t /bin/bash
|
||||||
|
rem deprecated: -l
|
||||||
|
rem /arguments:--wsl -o Locale=C -o Charset=UTF-8 /bin/wslbridge -t /bin/bash -l
|
||||||
|
|
||||||
rem General - Name:
|
rem General - Name:
|
||||||
name = Wscript.Arguments.Named("name") & ".lnk"
|
name = Wscript.Arguments.Named("name") & ".lnk"
|
||||||
set wshell = WScript.CreateObject("WScript.Shell")
|
set wshell = WScript.CreateObject("WScript.Shell")
|
||||||
|
wscript.echo "Creating " & name
|
||||||
set lnk = wshell.CreateShortcut(name)
|
set lnk = wshell.CreateShortcut(name)
|
||||||
|
|
||||||
rem Target:
|
rem Target:
|
||||||
@@ -23,8 +25,8 @@ lnk.TargetPath = wshell.ExpandEnvironmentStrings("%target%")
|
|||||||
minttyargs = wshell.ExpandEnvironmentStrings("%minttyargs%")
|
minttyargs = wshell.ExpandEnvironmentStrings("%minttyargs%")
|
||||||
bridgeargs = wshell.ExpandEnvironmentStrings("%bridgeargs%")
|
bridgeargs = wshell.ExpandEnvironmentStrings("%bridgeargs%")
|
||||||
lnk.Arguments = minttyargs & bridgeargs
|
lnk.Arguments = minttyargs & bridgeargs
|
||||||
wscript.echo "minttyargs: " & minttyargs
|
rem wscript.echo "minttyargs: " & minttyargs
|
||||||
wscript.echo lnk.Arguments
|
rem wscript.echo lnk.Arguments
|
||||||
|
|
||||||
rem Start in:
|
rem Start in:
|
||||||
rem lnk.WorkingDirectory = Wscript.Arguments.Named("workingdir")
|
rem lnk.WorkingDirectory = Wscript.Arguments.Named("workingdir")
|
||||||
@@ -35,9 +37,10 @@ rem icon = Wscript.Arguments.Named("icon")
|
|||||||
rem rem iconoffset = Wscript.Arguments.Named("iconoffset")
|
rem rem iconoffset = Wscript.Arguments.Named("iconoffset")
|
||||||
rem rem icon = icon & ", " & iconoffset
|
rem rem icon = icon & ", " & iconoffset
|
||||||
icon = wshell.ExpandEnvironmentStrings("%icon%")
|
icon = wshell.ExpandEnvironmentStrings("%icon%")
|
||||||
wscript.echo "icon: " & icon
|
rem wscript.echo "icon: " & icon
|
||||||
lnk.IconLocation = icon
|
lnk.IconLocation = icon
|
||||||
rem lnk.IconLocation = "%LOCALAPPDATA%\lxss\bash.ico"
|
rem rem lnk.IconLocation = "%LOCALAPPDATA%\lxss\bash.ico"
|
||||||
|
rem lnk.IconLocation = "%LOCALAPPDATA%\wsltty\wsl.ico"
|
||||||
|
|
||||||
rem Shorcut key:
|
rem Shorcut key:
|
||||||
rem lnk.HotKey = "ALT+CTRL+W"
|
rem lnk.HotKey = "ALT+CTRL+W"
|
||||||
@@ -50,3 +53,5 @@ rem lnk.IconLocation = Wscript.Arguments.Named("desc")
|
|||||||
rem lnk.Description = "WSLtty"
|
rem lnk.Description = "WSLtty"
|
||||||
|
|
||||||
lnk.Save
|
lnk.Save
|
||||||
|
wscript.echo "Created " & name
|
||||||
|
wscript.echo
|
||||||
|
|||||||
Binary file not shown.
@@ -9,20 +9,26 @@ rem delete Start Menu Folder
|
|||||||
set smf=%APPDATA%\Microsoft\Windows\Start Menu\Programs\WSLtty
|
set smf=%APPDATA%\Microsoft\Windows\Start Menu\Programs\WSLtty
|
||||||
rmdir /S /Q "%smf%"
|
rmdir /S /Q "%smf%"
|
||||||
|
|
||||||
rem delete Desktop Shortcuts
|
rem delete Desktop Shortcuts (not installed anymore)
|
||||||
del "%USERPROFILE%\Desktop\WSL Bash % in Mintty.lnk"
|
rem del "%USERPROFILE%\Desktop\WSL % in Mintty.lnk"
|
||||||
del "%USERPROFILE%\Desktop\WSL Bash ~ in Mintty.lnk"
|
rem del "%USERPROFILE%\Desktop\WSL ~ in Mintty.lnk"
|
||||||
|
|
||||||
|
|
||||||
|
:start menu
|
||||||
|
|
||||||
|
cd %installdir%
|
||||||
|
bin\dash.exe config-distros.sh -shortcuts-remove
|
||||||
|
|
||||||
|
|
||||||
:explorer context menu
|
:explorer context menu
|
||||||
|
|
||||||
call "%installdir%\config-context-menu.bat" /U
|
cd %installdir%
|
||||||
|
bin\dash.exe config-distros.sh -contextmenu-remove
|
||||||
|
|
||||||
|
|
||||||
:undeploy
|
:undeploy
|
||||||
|
|
||||||
cd %installdir%
|
cd %installdir%
|
||||||
|
|
||||||
rem currently not removing software
|
rem currently not removing software
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
15
wsl-l.bat
15
wsl-l.bat
@@ -1,15 +0,0 @@
|
|||||||
@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
15
wsl.bat
@@ -1,15 +0,0 @@
|
|||||||
@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
|
|
||||||
|
|
||||||
BIN
wsltty.png
Normal file
BIN
wsltty.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
15
wsl~.bat
15
wsl~.bat
@@ -1,15 +0,0 @@
|
|||||||
@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