Terminals

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



iterm2

A terminal famous for thoughtful UI. macOS only. 🏗 It has many features. tmux integration. Little utilities that do useful things like scp files from a remote host to your local folder. Python API. I cannot help but feel superstitiously that a python API for a terminal is begging for security holes. This feels like adding a web server to your pacemaker. Anyway, it is simple and easy and works.

If you are using other systems than macos, read on.

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.

Weird quirk 1: It does not support dragging files into the terminal, which pretty much every alternative does. qweasd1’s hyper-drop-file extension enables support.

hyper install hyper-drop-file

Weird quirk 2: Anything which looks remotely like a URL in the terminal becomes a link which the terminal will aggressively open if you click on it or even drag over it which is rather annoying and slightly dangerous. Apparently this behaviour has become configurable now and you can put webLinksActivationKey: ctrl in your config file to only do it on Ctrl-Click. But only for Hyperlinks 3.1.canary4 or greater, which at time of writing had not been released.. You can force alpha versions by adding updateChannel: 'canary' to the config, although that still does not get me access to the modern version of the terminal which eventually arrived after a few months.

VS code built-in terminal

VS Code has a built-in terminal. It is pretty good, just so long as you do not need to full-screen it, and is ubiquitous and therefore useful.

Cmder/ConEmu

Windows consoles that also speak linux terminal: Cmder | Console Emulator seems to be a fine default. It is a friendlified/packaged version of ConEmu.

st

simple terminal aims to have less lines of code than anything else and as few features as useful. It still does lots of stuff, and is tiny.

Alacritty

Alacritty is a GPU-accelerated terminal editor that aims to draw text real fast, and be otherwise minimalistic. That is not my main problem with terminals, so I have not used it. I recant. A fast simple terminal that is not quite so hardline about the simplicity as st is useful. It is written in Rust which gets it some kind of hip points. There are fewer features to break than hyper has.

Warp

Warp, the “The blazingly fast, Rust-based terminal” has presumably even more rust hipness points than Alacritty. Currently in closed beta. Has lots of hype-compatible features such as shared/networked connections and enscrypted stuff and multiple cursors and inline manuals.

xterm

Is old and messy; let it go.

Tilix

Tilix is a terminal emulator that Gnome people tend to like. It has consistent keyboard shortcuts, tiles (but tiles terminals only) and integrates into the Gnome Experience. The tiles do not spark joy for me; if I wanted to tile things I would tile more than only terminals.

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 I have a vague sense that it has too many features, because that would be on-brand for Kovid. macOS/Unices.

terminator

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

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

See terminal session management


No comments yet. Why not leave one?

GitHub-flavored Markdown & a sane subset of HTML is supported.