Terminals

More realistically, terminal emulators, because anyone who is owns an actual working VT102 these days is not using it to do work


Terminal emulators

iterm2

Classic terminals, if you must, with thoughtful UI. macOS only. 🏗 It has many features. tmux integration. Python API. (I cannot help but feel superstitiously that a python API for a terminal is a security hole.)

If you are using other OSes, read on.

st

simple terminal aims to have less lines of code than anything else and as few extraneous features as possible.

Hyper

If you are worried that your current terminal doesn’t use enough RAM, you can use hyper which is a javascript app version of terminal. It’s not too bad for one of these web technology desktop app things based on electron or similar, although it is not hard. It has lots of sexy features and nice graphics, to compensate for the obviously hefty RAM usage.

Tilix

Tilix is the terminal emulator that Gnome people tend to like. It has consistent keyboard shortcuts, tiles (but tiles terminals only) and integrates into the Gnome Experience.

kitty

Kovid Goyal made a terminal with c inner loops and python UI extensibility called kitty. It’s not famous, but probably worth checking since Kovid is a powerhouse of feature-packed development. In fact too many features and I’m kind of afraid of how fragile it looks. macOS/Unices.

terminator

terminator seems to be an acceptable default option for a pure native GNOME app without many frills.

Alacritty

Alacritty is a GPU-accelerated terminal editor that aims to draw text real fast. If that was your primary problem, fear not. Also, what is your world?

Terminus

terminus supports some HTML graphics, and appears to work-ish.

TermKit

Designerly graphics-friendly terminal aims to reinvent terminal protocols! Has a vision statement! However it’s dead in the water.

Some cool features

  • Smart token-based input with inline autocomplete and automatic escaping
  • Rich output for common tasks and formats, using MIME types + sniffing
  • Asynchronous views for background / parallel tasks
  • Full separation between front/back-end

TermKit is not a…

  • …Web application. It runs as a regular desktop app.
  • …Scripting language like PowerShell or bash. It focuses on executing commands only.
  • …Full terminal emulator. It does not aim to e.g. host ‘vim’.
  • …Reimplementation of the Unix toolchain. It replaces and/or enhances built-in commands and wraps external tools.

Terminal multiplexers

Terminals within terminals.

The classic option here is called screen, which is ungoogleable. But don’t bother. Use the more modern option, tmux. Here are some intros to tmux: 0 1, 2. tl;dr: It creates “sessions” which seem to be connections to a host, which contain “windows”, which are virtual terminals within that session. Both these persist if you log in or out.

World’s shortest introduction:

tmux ls  # list sessions
tmux attach -t 0  # resume a session
Create new windows
Ctrl-b c
Previous/next window
Ctrl-b p/C-b n

Once I had used it for a while I discovered I wished to do backwards scrolling. There are carious keyboard shortcuts, and a mouse scroll mode.