Request to try out mintty as a potential default terminal for Julia on Windows

We have a potential solution now to be able to ship mintty as a default terminal for Julia on Windows. It would be great if users on Windows can try the solution outlined in the issue below, and report in that issue the issues they encounter.

https://github.com/JuliaLang/julia/issues/7267#issuecomment-574882232

-viral

10 Likes

MinTTY really shines on the modern terminal features like true colors or BiDirectional text support (for the latter it’s incomplete support, but better than nothing).

There is some embedded assumption on /bin/bash in there, so that it does not run for me.
I do have a bash, provide by Git. But obviously, not in /bin/bash.

3 Likes

Naive question here. What are the advantages of this over just using the new terminal that windows is developing

1 Like

The main advantage is that we can ship mintty bundled with Julia (adding only a few percent to the download size), so that we can use it by default on all supported Windows machines. It will be some time before we can rely on the new Windows Terminal being installed by default everywhere (at which point we can switch over). The goal is to have a good user experience out-of-the box on Windows.

The most persistent complaint that a new terminal addresses is better Unicode support, because the Windows console does not support fallback fonts.

(You can still use Julia with Windows Terminal if you have it installed.)

5 Likes

Thanks! Looks like a lot of discussion and workarounds, so I wasn’t sure exactly what to test. Can you link us to the exact directions you want us to start following to get the terminal and appropriate fonts installed (btw, I suspect you would need to get the fonts installed and setup to make it a better experience for new users)?

1 Like

I second @jlperla. I had already installed a different terminal experience (Cmder) to use on my Windows machine because I hated the way the REPL functioned normally. I’d love to test this out but I’m a bit uncertain what I need to do.

2 Likes

What I did was:

  1. Download binaries from the linked comment (from this repo).
  2. cd to the folder
  3. if julia is added to PATH, start julia with: mintty julia

You can specify the full path for both programs:

path-to-mintty\mintty path-to-julia\julia

I had some problems with using cd() in julia (described in my issue comment), and it did not work when I started from git bash, only from command prompt.

3 Likes

I kind of like the new Windows Terminal. But it bugs me that copy by Ctrl+c doesn’t work yet (or maybe I haven’t figured it out), while I can easily copy by Ctrl+c from the old Command Prompt app.

I think it’s Ctrl+Shift+C?

Thanks – you are right! Ctrl+shift+c works.

But why on earth are they not using their own standards? Ctrl+c is standard for copying in Windows…

Because CTRL-c is used for other purposes by terminal programs, pre-dating copy-paste.

2 Likes

I guess so… but not in the Windows-world?? At least, Ctrl+c works in the Command-prompt app. Perhaps it is a result of Microsoft going cross-platform and making tools that work for Mac and Linux, too…

It depends on what you want to run in your terminal. If you want to run Unix-derived programs, from ipython to emacs, you can’t intercept ctrl-c.

2 Likes

Did you manually change fonts as well? Is the default font any better than the one powershell/cmd uses?

You shouldn’t have to change fonts to see big benefits in Unicode rendering, because mintty (unlike the Windows console) should use the system fallback fonts — if a glyph isn’t present in the current font, it looks in the next font from the list of fallbacks.

(Of course, using a font with decent Unicode coverage to start with will give a more consistent look, but no truetype font covers all of Unicode AFAIK.)

3 Likes

I confirmed this. This makes a huge difference for usability of DSL-style code. That is worth the trouble because otherwise many packages are unusable in a REPL.

As for the test, now that I have it working: I think hese are all know, but with the #master of the mintty-julia repo:

  • I needed to call it as .\mintty.exe julia from a new powershell after adding julia to the path.
  • It launched a second mintty window along with the julia one, which sounds to be a standard problem
  • cd crashed everything, as was discussed.

What might be helpful is instructions for creating the shortcut that would be emulate what would be done automatically for adding to the windows menu and toolbar.

2 Likes

on my Win 10 (64),

  1. mintty julia starts and unicode seems to work (although I think the font is too small and somewhat ugly, but that’s a matter of taste). Ctrl-c (during a Julia evaluation) closes the mintty window.

  2. just issuing mintty gives the /bin/bash error message reported before.

Win 10 / 64-bit:

  1. If julia is in the path, then mintty julia works.
  2. mintty by itself gives the /bin/bash error mentioned above
  3. mintty /path/to/julia/julia.exe also gives the /bin/bash error
1 Like