Mintty as a terminal for WSL (Windows Subsystem for Linux).
Jump to File & Directory Commands - The tilde symbol stands for your home directory. Also displays this information in the title bar of its window.
WSLtty components
%LOCALAPPDATA%%APPDATA%(“home”-located configuration files from a previously installed versionwill be migrated to the new default location)*.bat scripts to invoke WSL terminals from the command lineWSLttyRun the installer to installthe 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.
Download or checkout the wsltty repository.Invoke make, then make install.Note this has to be done within a Cygwin environment.
(For experts)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.
If you use the Chocolatey package manager,invoke one of
choco install wslttychoco upgrade wslttyIf you use the Scoop package manager,
scoop bucket add extrasthen, invoke one of
scoop install wslttyscoop update wslttyA Windows Appx package and certificate is available in the wsltty.appx repository.
WSLtty can be invoked with
WSLtty subfolder)
Starting the mintty terminal directly from the WSLtty installation locationis discouraged because that would bypass essential options.
Due to some incompatible changes by Microsoft, wslbridge cannot connectin WSL 2 mode at this time.Workaround:
wsl --set-default-version 1In the Start Menu, the following shortcuts are installed:
Terminal to start in the WSL user homeWSL 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:
Terminal % to start in the Windows %USERPROFILE% homeWSL Terminal % to start the default WSL distribution in the Windows %USERPROFILE% homeOne 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 desktopfrom the Start Menu if desired.
The Start menu folder WSLtty contains the linkconfigure WSL shortcuts.This function is initially run when wsltty is installed.If should be rerun after adding or removing WSL distributions,in order to create the respective set of shortcuts in the Start menu.
wsl*.batWSLtty installs the following scripts into %LOCALAPPDATA%MicrosoftWindowsApps(and a copy in its application folder %LOCALAPPDATA%wsltty):
.bat to start in the current folder/directory~.bat to start in the WSL user homeWSL.bat and WSL~.bat to start the default WSL distributionGiven that %LOCALAPPDATA%MicrosoftWindowsApps is in your PATH,the scripts can be invoked from cmd.exe, PowerShell, or via WIN+R.
WSLtty provides context menu entries for all installed WSL distributionsand 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 theExplorer context menu, or remove them, run the respective script from theStart Menu subfolder WSLtty:
add default to context menuadds context menu entries for the default WSL distributionadd to context menuadds context menu entries for all WSL distributionsremove from context menuremoves context menu entries for WSL distributionsWsltty installation and the mintty terminal try to use the icon of therespective WSL distribution. If it cannot be determined, a penguin iconis used as a default. You can replace it with your preferred fallback iconby replacing the icon file %LOCALAPPDATA%wslttywsl.ico.
Mintty can maintain its configuration file in various locations,with the following precedence:
-c (not used by wsltty default installation)config in directory given with mintty option --configdir%APPDATA%wslttyconfig in the default wsltty installation.%HOME%.minttyrc (usage deprecated with wsltty)%HOME%.configminttyconfig (usage deprecated with wsltty)%APPDATA%minttyconfig%LOCALAPPDATA%wslttyetcminttyrc (usage deprecated with wsltty)Note:
%APPDATA%wslttyconfig 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 defaultwsltty software installation location.%APPDATA%minttyconfig option provides the possibility tomaintain common mintty settings for various installations (likewsltty, Cygwin, MinGW/msys, Git for Windows, MinEd for Windows).%HOME% would refer to theroot directory of the cygwin standalone installation hosting wsltty.So %HOME% would mean %LOCALAPPDATA%wslttyhome%USERNAME%.If you define HOME at Windows level, this changes accordingly.Note, however, that the WSL HOME is a completely different setting.The WSLtty deployment does not impose a shell preference anymore.However, the intermediate gateways (wslbridge and its backend and the bash.exe Windows launcher)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 parameterto the mintty invocation (in shortcuts, scripts, or context menu entries):
%LOCALAPPDATA%wslttybinmintty.exe --WSL= --configdir='%APPDATA%wsltty' /bin/bash -lFor mintty, see the Mintty homepage(with further screenshots),the Mintty manual page,
and the Mintty Wiki,including a Hints and Tips page.
It is based on Cygwinand includes its runtime library (sources).
For interacting with WSL, it uses wslbridge.Many thanks for this enabling gateway go especially to Ryan Prichard.
I have enabled developer mode and installed Bash on Ubuntu on Windows.
My home directory can be found under %localappdata%Lxsshome<ubuntu.username>, i have created a sub-directory called Pictures such that the full path should be
on windows: C:Users<windows.username>AppDataLocallxsshome<ubuntu.username>Pictures
on bash: /home/<ubuntu.username>/Pictures
if i create a file from bash using the command touch hello.txt i can freely see this file in the windows UI and copy it to my Desktop. However, if i create a new text file from the windows UI and save it in C:Users<windows.username>AppDataLocallxsshome<ubuntu.username>Pictures, even if i restart bash or windows, the file is not visible when i do ls -l.
Why can't bash see files created from the Windows side in it's own home directory?
Using /mnt/c is not a solution, i am trying to understand why it doesn't see those files and if there is a remedy to that so that it will be able to see UI created files, rather than trying to use the terminal to copy-paste or move files over.