2017-07-28 14:14:51 +02:00
|
|
|
|
Mintty as a terminal for WSL (Windows Subsystem for Linux).
|
2016-09-14 14:55:14 +02:00
|
|
|
|
|
2017-07-04 11:11:21 +02:00
|
|
|
|
<img align=right src=wsltty.png>
|
|
|
|
|
|
2016-09-29 14:53:19 +02:00
|
|
|
|
### Overview ###
|
2016-09-14 14:55:14 +02:00
|
|
|
|
|
2017-05-20 20:31:33 +02:00
|
|
|
|
WSLtty components
|
|
|
|
|
* wsltty package components (see below) in the user’s local application folder
|
2017-07-28 14:14:51 +02:00
|
|
|
|
`%LOCALAPPDATA%`
|
|
|
|
|
* a wsltty configuration directory in the user’s application folder `%APPDATA%`
|
|
|
|
|
(“home”-located configuration files from a previously installed version
|
|
|
|
|
will be migrated to the new default location)
|
2017-10-23 08:35:04 +02:00
|
|
|
|
* Start Menu shortcuts to start WSL terminals
|
|
|
|
|
* `*.bat` scripts to invoke WSL terminals from the command line
|
|
|
|
|
* optional context menu entries for Windows Explorer to start WSL terminals in the respective folder
|
2017-07-28 14:14:51 +02:00
|
|
|
|
* install/uninstall context menu items from Start Menu subfolder `WSLtty`
|
2016-09-14 14:55:14 +02:00
|
|
|
|
|
2018-04-19 07:42:45 +02:00
|
|
|
|
---
|
|
|
|
|
|
2018-04-18 15:24:10 +02:00
|
|
|
|
### Installation from this repository ###
|
2017-05-20 20:31:33 +02:00
|
|
|
|
|
2018-02-06 10:51:07 +01:00
|
|
|
|
#### WSLtty installer ([Download](https://github.com/mintty/wsltty/releases) standalone installation) ####
|
2017-05-20 20:31:33 +02:00
|
|
|
|
|
|
|
|
|
Run the [installer](https://github.com/mintty/wsltty/releases) to install
|
|
|
|
|
the components listed above.
|
2017-04-14 01:08:20 +02:00
|
|
|
|
If Windows complains with a “Windows protected your PC” popup,
|
|
|
|
|
you may need to click “Run anyway” to proceed with the installation.
|
2017-05-06 19:42:03 +02:00
|
|
|
|
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.
|
2017-04-14 01:08:20 +02:00
|
|
|
|
|
2017-05-20 20:31:33 +02:00
|
|
|
|
#### 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 ####
|
|
|
|
|
|
2017-07-28 14:14:51 +02:00
|
|
|
|
(For experts)
|
2017-05-20 20:31:33 +02:00
|
|
|
|
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.
|
|
|
|
|
|
2018-04-18 15:24:10 +02:00
|
|
|
|
### Installation with other package management environments ###
|
|
|
|
|
|
|
|
|
|
#### Chocolatey ####
|
|
|
|
|
|
|
|
|
|
If you use the [Chocolatey package manager](https://chocolatey.org/),
|
|
|
|
|
invoke one of
|
2018-05-08 08:43:31 +02:00
|
|
|
|
<img height=222 align=right src=https://github.com/mintty/wsltty.appx/raw/master/wsltty.appx.png>
|
2018-04-18 15:24:10 +02:00
|
|
|
|
* `choco install wsltty`
|
|
|
|
|
* `choco upgrade wsltty`
|
|
|
|
|
|
2018-07-04 17:59:07 -07:00
|
|
|
|
#### Scoop ####
|
|
|
|
|
|
|
|
|
|
If you use the [Scoop package manager](https://scoop.sh/),
|
|
|
|
|
* `scoop bucket add extras`
|
|
|
|
|
|
|
|
|
|
then, invoke one of
|
|
|
|
|
* `scoop install wsltty`
|
|
|
|
|
* `scoop update wsltty`
|
|
|
|
|
|
2018-04-19 08:22:06 +02:00
|
|
|
|
#### Windows Appx package ####
|
2018-04-18 15:24:10 +02:00
|
|
|
|
|
2018-05-08 08:43:31 +02:00
|
|
|
|
A Windows Appx package and certificate is available in the [wsltty.appx](https://github.com/mintty/wsltty.appx/) repository.
|
|
|
|
|
|
|
|
|
|
<br clear=all>
|
2018-04-18 15:24:10 +02:00
|
|
|
|
|
2018-04-19 07:42:45 +02:00
|
|
|
|
---
|
|
|
|
|
|
2017-05-22 19:49:35 +02:00
|
|
|
|
### Invocation ###
|
|
|
|
|
|
|
|
|
|
WSLtty can be invoked with
|
2017-07-28 14:14:51 +02:00
|
|
|
|
* installed Start Menu shortcuts (or Desktop shortcuts if copied there)
|
|
|
|
|
* *.bat scripts
|
|
|
|
|
* Explorer context menu (if installed from the Start Menu `WSLtty` subfolder)
|
2017-05-22 19:49:35 +02:00
|
|
|
|
|
|
|
|
|
Starting the mintty terminal directly from the WSLtty installation location
|
2017-10-23 08:35:04 +02:00
|
|
|
|
is discouraged because that would bypass essential options.
|
2017-05-22 19:49:35 +02:00
|
|
|
|
|
2018-04-19 07:42:45 +02:00
|
|
|
|
---
|
|
|
|
|
|
2016-09-29 14:53:19 +02:00
|
|
|
|
### Configuration ###
|
|
|
|
|
|
2017-10-23 08:35:04 +02:00
|
|
|
|
#### Start Menu and Desktop shortcuts ####
|
|
|
|
|
|
|
|
|
|
In the Start Menu, the following shortcuts are installed:
|
|
|
|
|
* For each installed WSL distribution D, D` Terminal` to start in the WSL user home
|
|
|
|
|
* `WSL Terminal` to start the default WSL distribution (as configured with the Windows tool `wslconfig`)
|
|
|
|
|
|
|
|
|
|
In the Start Menu subfolder WSLtty, the following shortcuts are installed:
|
|
|
|
|
* 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.
|
|
|
|
|
|
2017-01-31 12:51:03 +01:00
|
|
|
|
#### Command line scripts `wsl*.bat` ####
|
2016-09-29 14:53:19 +02:00
|
|
|
|
|
2017-07-28 14:14:51 +02:00
|
|
|
|
WSLtty installs the following scripts into `%LOCALAPPDATA%\Microsoft\WindowsApps`
|
|
|
|
|
(and a copy in its application folder `%LOCALAPPDATA%\wsltty`):
|
2016-09-29 14:53:19 +02:00
|
|
|
|
|
2017-07-28 14:14:51 +02:00
|
|
|
|
* 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
|
2017-11-07 17:36:30 +01:00
|
|
|
|
* `WSL.bat` and `WSL~.bat` to start the default WSL distribution
|
2017-07-28 14:14:51 +02:00
|
|
|
|
|
|
|
|
|
Given that `%LOCALAPPDATA%\Microsoft\WindowsApps` is in your PATH,
|
|
|
|
|
the scripts can be invoked from cmd.exe, PowerShell, or via WIN+R.
|
2016-09-29 14:53:19 +02:00
|
|
|
|
|
2017-07-28 14:14:51 +02:00
|
|
|
|
#### Context menu entries ####
|
|
|
|
|
|
2017-10-23 08:35:04 +02:00
|
|
|
|
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.
|
2017-07-28 14:14:51 +02:00
|
|
|
|
They are not installed by default.
|
2017-10-29 16:47:04 +01:00
|
|
|
|
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
|
2017-07-28 14:14:51 +02:00
|
|
|
|
Start Menu subfolder `WSLtty`.
|
|
|
|
|
|
2016-10-11 18:05:11 +02:00
|
|
|
|
#### Mintty settings ####
|
|
|
|
|
|
|
|
|
|
Mintty can maintain its configuration file in various locations,
|
|
|
|
|
with the following precedence:
|
2017-05-20 20:31:33 +02:00
|
|
|
|
* file given with mintty option `-c` (not used by wsltty default installation)
|
|
|
|
|
* file `config` in directory given with mintty option `--configdir`
|
2017-05-24 15:35:59 +02:00
|
|
|
|
* This is `%APPDATA%\wsltty\config` in the default wsltty installation.
|
2017-05-20 20:31:33 +02:00
|
|
|
|
* `%HOME%\.minttyrc` (usage deprecated with wsltty)
|
|
|
|
|
* `%HOME%\.config\mintty\config` (usage deprecated with wsltty)
|
2016-10-11 18:05:11 +02:00
|
|
|
|
* `%APPDATA%\mintty\config`
|
2017-05-20 20:31:33 +02:00
|
|
|
|
* `%LOCALAPPDATA%\wsltty\etc\minttyrc` (usage deprecated with wsltty)
|
2016-10-11 18:05:11 +02:00
|
|
|
|
|
2017-05-11 12:33:37 +02:00
|
|
|
|
Note:
|
2017-05-20 20:31:33 +02:00
|
|
|
|
* `%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.
|
2017-05-11 12:33:37 +02:00
|
|
|
|
* 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).
|
2017-05-20 20:31:33 +02:00
|
|
|
|
* (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.
|
2016-09-29 14:53:19 +02:00
|
|
|
|
|
2018-01-10 21:41:34 +01:00
|
|
|
|
#### Shell selection and Login shell ####
|
2017-01-31 12:51:03 +01:00
|
|
|
|
|
2017-10-23 08:35:04 +02:00
|
|
|
|
The WSLtty deployment does not impose a shell preference anymore.
|
|
|
|
|
However, the intermediate gateways (`wslbridge` and its backend and the `bash.exe` Windows launcher)
|
2018-01-10 21:41:34 +01:00
|
|
|
|
are also involved.
|
|
|
|
|
|
|
|
|
|
To invoke your favourite shell or launch the shell in login mode,
|
|
|
|
|
you may append a shell pathname and an optional `-l` parameter
|
|
|
|
|
to the mintty invocation (in shortcuts, scripts, or context menu entries):
|
|
|
|
|
* `%LOCALAPPDATA%\wsltty\bin\mintty.exe --WSL= --configdir="%APPDATA%\wsltty" /bin/bash -l`
|
2017-01-31 12:51:03 +01:00
|
|
|
|
|
2018-04-19 07:42:45 +02:00
|
|
|
|
---
|
|
|
|
|
|
2017-10-23 08:35:04 +02:00
|
|
|
|
### Components and Credits ###
|
2016-09-14 14:55:14 +02:00
|
|
|
|
|
2017-07-04 11:11:21 +02:00
|
|
|
|
For mintty, see the [Mintty homepage](http://mintty.github.io/)
|
|
|
|
|
(with further screenshots),
|
|
|
|
|
the [Mintty manual page](http://mintty.github.io/mintty.1.html),
|
|
|
|
|
<br>and the [Mintty Wiki](https://github.com/mintty/mintty/wiki),
|
2017-01-27 14:49:23 +01:00
|
|
|
|
including a [Hints and Tips page](https://github.com/mintty/mintty/wiki/Tips).
|
2016-09-14 14:55:14 +02:00
|
|
|
|
|
|
|
|
|
It is based on [Cygwin](http://cygwin.com)
|
|
|
|
|
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).
|
2017-10-23 08:35:04 +02:00
|
|
|
|
Many thanks for this enabling gateway go especially to Ryan Prichard.
|