thiagowfx's avatar

¬ just serendipity 🍀 (not just serendipity)

macOS terminal app gripes

• 312 words • 2 min • updated

⚠️ This post is over one year old. It may no longer be up to date or relevant. Opinions may have changed.

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:

shell
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.