checking out alacritty

A lot has changed since my last post. One of these is my terminal.

I’ve used iTerm2 for a while, but recent events have led me to reconsider. The developer added AI integration into it, and although he moved it out to a separate installable module, it made me question the direction of the project.

A webhook to a remote AI service really shouldn’t be a built-in feature of a terminal, which is one of the most privileged applications that can be installed and sees some of the most sensitive authorization information available on a computer. I also suspect the security of the built-in Python scripting features now, so instead of doing more research, I’m trialling one of the terminal alternatives that users mentioned in ones of the many issues.

This has led me to Alacritty.


Alacritty

Alacritty CPUfetch

Alacritty is a super minimal terminal. Yes, it’s written in Rust and is advertised as running really fast, but that’s the first thing that really stands out once you install it.

I’ve run it for a couple months, and here’s some of my impressions:

Pros

Cons

Configurations

The configs I’ll be listing here are pretty minimal. I will be making future posts covering the advanced keybindings I use to send keycodes to both tmux and zsh, as they deserve dedicated topics unto themselves.

Theme

As with every other tool, I like to use the Nord theme. However, it unfortunately appears that the lead maintainer has been on indefinite hiatus, so it hasn’t been migrated from Alacritty’s old YAML configuration format to TOML.

Thankfully, someone put together a Gist of the Nord theme in TOML.

The only 2 modifications I made are:

[colors.selection]
text = "#3b4251"	# Text is always dark
background = "#d8dee8"	# Light background

App configs

# .alacritty.toml
import = ["~/.alacritty.nord-theme.toml"]   # Import Nord theme from a separate file
live_config_reload = true                   # Reload Alacritty on config changes

[window]
dimensions = { columns = 120, lines = 50 }
decorations = "Buttonless"                  # Remove the top title bar for a minimal look
resize_increments = true                    # Resize window content in character increments
option_as_alt = "Both"                      # Make the Mac Option key behave as Alt
decorations_theme_variant = "Dark"          # Force the OS window theme to be Dark

# Pad the terminal content
dynamic_padding = true
padding = { x = 25, y = 25 }

[scrolling]
history = 100000 # maximum

[font]
size = 15
normal = { family = "FiraCode Nerd Font Mono", style = "Regular" }

[selection]
save_to_clipboard = true                    # Immediately save selected text to clipboard

# Keep the cursor always blinking unless Alacritty is in Vi mode
[cursor]
style = { shape = "Block", blinking = "Always" }
vi_mode_style = { shape = "Block", blinking = "Off" }
blink_timeout = 0

As mentioned above, I will cover custom keybindings in a later post. Ideally, I’ll flush out a consistent keybinding set across tmux, zsh, and vim that also isn’t too convoluted to pick up and use.

Resources