Terminal Emulators
I use a couple different terminal emulators across macOS, Debian, as well as (rarely) Windows, and they all have their pros and cons. I was often trying new terminals for a while, because nothing really fit all my use cases.
I was originally trying pretty hard to hit every feature I wanted
- cross platform
- splits
- tabs
- images
- True color (meaning any HEX color)
- background transparency
- two different fonts/sizes for ascii/nonascii characters
- GPU accelleration
- an API
- a nice community/maintainers 💙
Turns out that’s a tall order. I had to make some compromises here and there.
March 2023:
My ultimate choice is to use Wezterm on Linux and macOS full time for consistency.
Explanation of what and why it comes to Terminals
This will just go over what terminals I tested and why I liked them :)
Key:
Symbol | Description |
---|---|
🪟 | Windows |
🍎 | macOS |
🐧 | Linux |
🗂️ | Tabs |
⿲ | Splits |
🖼️ | images |
🎥 | recording |
🫥 | Transparency |
🖥️ | GPU acellerated |
🧑💻 | API |
App | Platforms | Features | Notable Downsides |
---|---|---|---|
wezterm | 🍎🐧🪟 | ⿲🗂️🫥 🖼️ | Can’t blur transparent backgrounds, can’t make new window from doc in macOS |
iTerm2 | 〿🍎〿 | ⿲🗂️🫥 🎥🖼️🧑💻 | Only on macOS :( |
kitty | 🍎🐧? | ⿲🗂️🫥 🖼️ | non-ascii font size unajustable, community unwelcoming |
Terminator | 〿🐧〿 | ⿲🗂️🫥 | community not as active anymore |
hyper.js | 🍎🐧🪟 | ⿲🗂️🫥🧑💻 | Slow on older machines with no GPU, written in javascript |
cmder | 〿〿🪟 | ⿲🗂️🫥 | kinda buggy, random crashes |
tilix | 〿🐧〿 | ?🗂️??? | small userbase |
I want to say I didn’t give tilix a fair shot, because I ran out of funemployment funds, and had to get back to work, where I need my terminal to just work, and it needs to be able to work fast and effeciently.
Tips and Tricks
When you’re using nerdfonts, you want to set the font in the terminal config itself, and you want to set the encodeing to UTF-8.
For getting your colors to match another terminal, try out terminal.sexy.
other cool stuff you do in a terminal that I wasn’t sure where to put
- You can find more Hyper.js docs here, thanks to @cloudymax :)
- additional hyper plugins