Best terminal for Atom?


#1

I’ve tried a few, but they all seem to have problems rendering, and some of them, including Atom IDE’s terminal, get slow after a while (especially when there’s more lines of scrollback output, but in other cases like simply switching to the alternate buffer).

Is there a Terminal for Atom that’s not bad?


#2

Well, that’s somewhat subjective isn’t it? I personally have no problem with platformio-ide-terminal. But I don’t know if you know about that one, because you didn’t list the ones you tried.


#3

Have you looked at atom-domterm? This is an Atom package that wraps the DomTerm terminal emulator. It does require first building/installing DomTerm as a program domterm in your path. The atom-domterm package then starts up domterm in server mode, and communicates with that. It has reasonable content menu and other integration with Atom. For example, clicking on a file link (with optional line and column) opens the file in a Atom editor window (at the given line and column). DomTerm is a more complete xterm-compatible terminal emulator than most JavaScript-based terminals.

I don’t use Atom on a regular basis (I mostly use and develop as domterm as a standalone application), but will try to deal with bug reports and requests promptly.


#4

Sounds cool! Does it work well on windows.

Nothing on the intro docs that says it (other than WSL)


#5

Note you can run native Windows programs under WSL quite well - even pipes work. Specifically, running cmd.exe in domterm works. The main annoyance is the the input command is echoed twice. This problem also happens when using the default wsl console, so it’s a Windows “bug”; hopefully Microsoft will fix it. It might also possible to implement a work-around to get rid of the duplicate echo, but I haven’t looked into it.

If you don’t mind the extra disk and memory use from using WSL, you could try it and see if can live with the extra echo. (If you like it, except for the duplicate echo, let me know, and I’ll look into fixes.) There is a prebuilt windows domterm executable, but it is a bit old.

I don’t recall if I’ve tried PowerShell or it has the same double-echo issue.

I have not attempted to build domterm on native Windows. The main problem is missing pty (pseduo-teletype) support. I’ve seen hints that MicroSoft is contemplating adding them. Other terminal emulator use various awkward work-arounds to simulate ptys. It is also possible to run interactive programs without dealing with ptys, but they won’t know they’re running in a terminal.


#6

@PerBothner Is there an easy-install option for DomTerm? Or do I have to build it?

I tried atom-domterm without installing DomTerm, and it crashes the Atom window.


#7

You do have to build domterm as a separate excutable. Reasonably detailed build instructions here: http://domterm.org/Downloading-and-building.html On Windows you currently need to use WSL (but the newly announced PTY support for Windows 10 may enable us to avoid that in the future). Feedback welcome.

It would be nice if atom-domterm could automatically download and build domterm but my npm/apm skills aren’t up to that yet.


#8

I just discovered the term3 package. It seems pretty quick inside the alternate-buffer (f.e. running NeoVim). It is also DOM-based, so everything can be styled with CSS, and has no rendering glitches. It also doesn’t require install of a separate binary outside of Atom. I’m liking it so far!


#9

Turns out term3 has some bugs that are preventing me from using it.

After much experimentation with many terminals, I’ve come to the conclusion that termination is the most solid and actively-developed terminal for Atom at the moment. It does not have any of the bugs and rendering glitches that many of the other terminals have, and is DOM-rendered so is easy to style, plus comes with some nice themes out of the box (I like the one-dark theme).

Some terminals are rendered only with canvas, which is a no-go for me (even if they may work well) because I want access to the DOM for maximum control. So not only does Termination render with DOM, but does it well.


#10

I’ve given up on all of the atom terminal packages. None of them seem to give me what I need (and most of them are super buggy). Termination doesn’t look too bad though, maybe I’ll give it a try.


#11

I was gonna give up too, until finally I stumbled on termination. It just works. Don’t know how I missed termination before. Curious to know how it works for you.