Terminal.app
is a pretty decent terminal emulator for macOS, with sensible
defaults. That said, I have my own gripes about it, but the list is
surprisingly small.
1. No OSC-52 support
https://github.com/roy2220/osc52pty:
OSC 52 is one of Xterm Control Sequences, which is designated for clipboard setting. Once a terminal supporting OSC 52 catches a text in the form of OSC 52 from the output, instead of printing the text onto the screen, it decodes the text first and then sends the content to the system clipboard.
Although
Terminal.app
does NOT support OSC 52, here [osc52pty] is the workaround for it.
I dislike this workaround because it requires an external binary. Even though it is a single binary because it is a Golang executable, I still dislike the external dependency.
2. No true color (256 colors)
What is true color? See stack overflow for context.
Run the following to print a color band, a smooth (gradient) output indicates true color support:
awk 'BEGIN{
s="/\\/\\/\\/\\/\\"; s=s s s s s s s s;
for (colnum = 0; colnum<77; colnum++) {
r = 255-(colnum*255/76);
g = (colnum*510/76);
b = (colnum*255/76);
if (g>255) g = 510-g;
printf "\033[48;2;%d;%d;%dm", r,g,b;
printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
printf "%s\033[0m", substr(s,colnum+1,1);
}
printf "\n";
}'
Terminal.app
will not print a gradient.
3. No GPU acceleration
https://unix.stackexchange.com/q/658709:
Q: What are the advantages of hardware-accelerated terminal emulators?
A: They can potentially be faster at outputting and refreshing vast amounts of information. It could also allow for smooth(er) scrolling. Human beings however are quite slow at reading this information, […] the average person is unlikely to be able to comprehend it anyways. CPU usage could be lower but it needs to be tested.
Terminal.app
isn’t GPU accelerated.
Recommendations
Both alacritty and kitty are decent replacements (or complements) for Terminal.app
that work out-of-the-box, with sensible defaults including all the aforementioned points.