For years, I’ve been using the default Terminal.app as my go-to terminal emulator on Mac. It wasn’t simply because it comes pre-installed; after experimenting with various options, I found that Terminal.app fit my specific preferences well. However, I recently decided to switch to Alacritty. In this article, I’ll share the steps I took during the transition, along with tips on common pitfalls and how to overcome them.

How I decided to switch to Alacritty

Terminal.app does not support True Color

I had no complaints with Terminal.app until now, but a small need led me to seek a terminal environment that supports True Color. True Color support means having the capability to represent RGB values with 8 bits each, enabling a much broader color range. In contrast, non-supported terminal environments are limited to 8-bit color in total, which significantly restricts color expression.

To check if your environment supports True Color, you can run the following command script. First, close any terminal multiplexers like tmux to ensure you’re testing only the terminal emulator itself. If you use tmux or similar tools within the terminal, you’ll also need to configure tmux to support True Color (instructions for this setup are provided later).

$ curl -s https://raw.githubusercontent.com/JohnMorales/dotfiles/master/colors/24-bit-color.sh | bash

If your terminal supports True Color, the output will display a smooth gradient, as shown in the image below. Otherwise, you’ll see a jagged color bar instead.

Color bar for checking True Color compatibility
Color bar for checking True Color compatibility

Alacritty supports True Color, ensuring smooth and accurate color rendering.

Alacritty as fast as Terminal.app

As mentioned earlier, I’ve been using Terminal.app as my primary terminal emulator for a long time. Over the years, I’ve tried others, including iTerm2, Hyper, and Warp, but I always ended up returning to Terminal.app. The main reason was that I felt a noticeable lag in response speed with these other emulators. Although the delay between pressing a key and seeing it appear in the terminal is less than a second, it’s perceptible enough to make a difference. For someone like me, who wants a terminal that feels as responsive as an extension of my hands, this lag was hard to overlook.

After testing Alacritty, I found its response speed to be on par with Terminal.app, with no perceptible lag. Naturally, the perceived speed can vary depending on the terminal emulator you’re accustomed to. That said, one of Alacritty’s key advantages over many other terminal emulators is its impressive speed—at least in my experience. (I haven’t conducted precise performance measurements, so this is based solely on personal observation.)

Other well-known fast terminal emulators include kitty and WezTerm. Both also support True Color, making them viable options. However, I chose Alacritty for its configuration flexibility with TOML files and its mature, stable development.

Install Alacritty on Mac

There are several ways to install Alacritty on a Mac, but the easiest method is using Homebrew. You can install it with the following command:

$ brew install --cask alacritty

If you have a Rust development environment, you can also install Alacritty via Cargo. Alternatively, you can download the .dmg file from Alacritty’s GitHub Releases page for a manual installation.

Generally, any of the methods above will suffice for installation. However, if you need the manual page or shell completions, you’ll need to build from source. For detailed instructions, refer to the Install.md file on GitHub.

Change the Alacritty icon

Alacritty’s default icon is relatively wide, which can disrupt visual uniformity with other application icons on Mac. While this is purely a matter of personal preference, I prefer to use a more consistent icon if possible.

Alacritty's original icon on Dock of macOS
Alacritty's original icon on Dock of macOS

It seems many users share this sentiment (see Issue #3926), but the current main contributor has stated that no new icon will be provided specifically for Mac.

So, I decided to change the icon for my setup. Fortunately, some community contributors have shared macOS-compatible icons. You can find Dropbox or GitHub links in the comments of the mentioned issue, where you can download the .icns file.

On macOS, you can change an application’s icon to one of your choice by following these steps:

  1. Open the Applications folder in Finder.
  2. Right-click on the application you want to change (in this case, Alacritty).
  3. Select “Get Info.”
  4. In the window that opens, drag and drop your new icon file onto the existing icon at the top left.

With this change, the icon width is now consistent with other apps, greatly improving the overall appearance.

Modified Alacritty's icon on Dock of macOS
Modified Alacritty's icon on Dock of macOS

Modify Alacritty settings

Alacritty’s settings can be customized by placing a configuration file named .alacritty.toml in your home directory. This file isn’t created automatically, so you’ll need to add it yourself.

$ touch ~/.alacritty.toml

In the past, configuration changes were made using a YAML file, but this has since been deprecated.

Previously, configuration changes were made using a YAML file, but this method has now been deprecated.

You can check the available configuration options in the Alacritty Configuration. For reference, I’ve listed some of the settings I’m currently using below.

live_config_reload = true

[window]
decorations = "Buttonless"
padding = { x = 8, y = 8 }
dynamic_padding = true

[font]
normal = { family = "SF Mono", style = "Regular" }
offset = { x = 1, y = 1 }

The live_config_reload option allows you to apply configuration changes without restarting the application, making it convenient for testing different settings (note that some settings still require a restart). However, enabling this option can cause performance issues if multiple windows are open, so you might want to comment it out once you’ve finalized your configuration.

For window.decorations, I’m using the Buttonless option, which is exclusive to Mac. This option removes the buttons (close/minimize) and title bar from the window. Ideally, I would have preferred to use the Transparent option, which only hides the title bar, but I encountered issues with padding configuration, so I opted against it (more details below).

Padding issue during Transparent

Setting window.decorations to Transparent allows you to hide only the title bar (also Mac-only). However, this can cause text to overlap the window buttons. To adjust for this, you might consider shifting the text position using the window.padding option. Unfortunately, since window.padding only accepts x and y values, adding padding to avoid overlap at the top also creates unnecessary padding at the bottom. This is particularly noticeable if you frequently use tmux. Although a pull request (PR #1290) was submitted to allow individual settings for top, bottom, left, and right padding, it was closed without being merged, as the maintainers felt that adding complexity to the config file solely for a macOS-specific issue wasn’t ideal.

This issue has been raised multiple times (e.g., Issue #7629), but it ultimately traces back to Issue #2308 in winit, the Rust library used to create windows. Until someone finds a solution for this issue in winit, the options are to either avoid using Transparent or tolerate the extra padding at the bottom (or alternatively, build a local version with custom top padding adjustments).

Since Transparent is a Mac-only option, it seems logical to modify Alacritty’s source code to add extra padding to the top only when this option is specified. However, according to this comment, it appears that this solution doesn’t work as expected.

Change the color theme of Alacritty

In Alacritty, colors can be customized through the configuration file. You can set each color individually, but there are many publicly available color themes to choose from, making it easy to find a style you like. A list of color themes is available in the alacritty-theme repository. Personally, I prefer light colors for my terminal, so I use the “GitHub Light” theme.

Clicking the source link in the README sometimes directs you to non-TOML configuration files, so it’s best to look for TOML files in the repository’s themes directory. As noted in the README, you can apply color themes using import, but personally, I find it better to copy and paste the color settings directly into .alacritty.toml to keep the configuration centralized.

True Color support in tmux environment

When using tmux in Alacritty, you need to adjust the settings to enable True Color support. Specifically, add the following to your .tmux.conf file:

set -g default-terminal "tmux-256color"
set -ga terminal-overrides ",*:RGB"

To use default-terminal set to tmux-256color, you’ll need the corresponding terminfo entry on your system. You can check if the tmux-256color entry is available with the following command:

$ find /usr/share/terminfo -name 'tmux-256color'

If the file isn’t found, note that macOS 14 (Sonoma) includes tmux-256color by default, so updating your OS might be the easiest solution. If you prefer not to update, you’ll need to manually add the entry to terminfo. There are various methods available online for doing this, so I recommend checking those resources for guidance. For example, this article might be helpful.

To verify that True Color is working correctly, launch tmux in Alacritty and display the color bar mentioned earlier. If everything is configured correctly but it’s still not working, try running tmux kill-server to fully terminate tmux, then restart it and test again.


In conclusion, I plan to continue using Alacritty for development for the foreseeable future. If I discover anything new or noteworthy, I’ll update this article or write a new one.