Alacritty – GPU-Accelerated Terminal Emulator
Experience Blazing Fast Terminal Performance with Alacritty
Alacritty positions itself as the fastest terminal emulator in existence, leveraging GPU acceleration through OpenGL to achieve rendering performance that traditional CPU-bound terminals cannot match. This cross-platform terminal emulator, written in Rust, has gained significant popularity among developers and power users who demand maximum responsiveness from their terminal applications.
The project’s philosophy embraces simplicity and performance above feature accumulation. Rather than including built-in tabs, splits, or graphical configuration tools, Alacritty focuses on being an exceptionally fast, reliable terminal that integrates with external tools like tmux for additional functionality. This Unix-philosophy approach results in a lean, focused application that excels at its core purpose.
Installation
Linux Installation
Ubuntu/Debian:
sudo add-apt-repository ppa:aslatter/ppa
sudo apt update
sudo apt install alacritty
Fedora:
sudo dnf install alacritty
Arch Linux:
sudo pacman -S alacritty
From Source (Cargo):
cargo install alacritty
macOS Installation
brew install --cask alacritty
Windows Installation
choco install alacritty
# or
scoop install alacritty
# or
winget install Alacritty.Alacritty
Configuration
Configuration File Location
Alacritty uses TOML configuration (previously YAML):
# Linux/macOS
~/.config/alacritty/alacritty.toml
# Windows
%APPDATA%\alacritty\alacritty.toml
Create default configuration:
mkdir -p ~/.config/alacritty
touch ~/.config/alacritty/alacritty.toml
Basic Configuration
# alacritty.toml
[window]
opacity = 0.95
decorations = "full"
startup_mode = "Windowed"
title = "Alacritty"
dynamic_title = true
[window.dimensions]
columns = 120
lines = 40
[window.padding]
x = 10
y = 10
[scrolling]
history = 10000
multiplier = 3
[font]
size = 12.0
[font.normal]
family = "JetBrains Mono"
style = "Regular"
[font.bold]
family = "JetBrains Mono"
style = "Bold"
[font.italic]
family = "JetBrains Mono"
style = "Italic"
Color Schemes
Example Dracula theme:
[colors.primary]
background = "#282a36"
foreground = "#f8f8f2"
[colors.cursor]
text = "#282a36"
cursor = "#f8f8f2"
[colors.normal]
black = "#000000"
red = "#ff5555"
green = "#50fa7b"
yellow = "#f1fa8c"
blue = "#bd93f9"
magenta = "#ff79c6"
cyan = "#8be9fd"
white = "#bfbfbf"
[colors.bright]
black = "#4d4d4d"
red = "#ff6e67"
green = "#5af78e"
yellow = "#f4f99d"
blue = "#caa9fa"
magenta = "#ff92d0"
cyan = "#9aedfe"
white = "#e6e6e6"
Key Bindings
Custom key bindings:
[[keyboard.bindings]]
key = "V"
mods = "Control|Shift"
action = "Paste"
[[keyboard.bindings]]
key = "C"
mods = "Control|Shift"
action = "Copy"
[[keyboard.bindings]]
key = "N"
mods = "Control|Shift"
action = "SpawnNewInstance"
[[keyboard.bindings]]
key = "Plus"
mods = "Control"
action = "IncreaseFontSize"
[[keyboard.bindings]]
key = "Minus"
mods = "Control"
action = "DecreaseFontSize"
[[keyboard.bindings]]
key = "Key0"
mods = "Control"
action = "ResetFontSize"
Shell Integration
Setting as Default Terminal
Linux (update-alternatives):
sudo update-alternatives --install /usr/bin/x-terminal-emulator x-terminal-emulator /usr/bin/alacritty 50
sudo update-alternatives --config x-terminal-emulator
i3 Window Manager:
# In ~/.config/i3/config
bindsym $mod+Return exec alacritty
Shell Configuration
Add to your shell’s rc file:
# For tmux auto-attach
if [ -z "$TMUX" ]; then
tmux attach -t default || tmux new -s default
fi
Performance Features
GPU Rendering
Alacritty uses OpenGL for rendering, providing:
– Smooth scrolling at high frame rates
– Minimal input latency
– Efficient memory usage
– Battery-friendly rendering
Benchmarking
Test scrolling performance:
time seq 1 100000
Compare with other terminals to see Alacritty’s speed advantage.
Advanced Features
Vi Mode
Enable Vi-like navigation:
[[keyboard.bindings]]
key = "Space"
mods = "Control|Shift"
action = "ToggleViMode"
In Vi mode:
– h/j/k/l for navigation
– v for visual selection
– y to yank
– / for search
URL Detection
Configure clickable URLs:
[hints]
enabled = [
{ regex = "(https?://)[a-zA-Z0-9._-]+(/[a-zA-Z0-9._/-]*)?" , hyperlinks = true, command = "xdg-open", binding = { key = "U", mods = "Control|Shift" } }
]
Live Reload
Configuration changes apply automatically without restart:
[general]
live_config_reload = true
Integration with Multiplexers
tmux Integration
Alacritty works excellently with tmux for splits and tabs:
# Launch with tmux
alacritty -e tmux
# Or configure in alacritty.toml
[terminal]
shell = { program = "/usr/bin/tmux", args = ["new-session", "-A", "-s", "main"] }
Zellij Alternative
[terminal]
shell = { program = "/usr/bin/zellij" }
Troubleshooting
Font Issues
Check available fonts:
fc-list | grep -i "mono"
Install Nerd Fonts:
brew tap homebrew/cask-fonts
brew install --cask font-jetbrains-mono-nerd-font
GPU Issues
Force software rendering:
LIBGL_ALWAYS_SOFTWARE=1 alacritty
Wayland Issues
Force X11 or Wayland:
WINIT_UNIX_BACKEND=x11 alacritty
WINIT_UNIX_BACKEND=wayland alacritty
Complete Configuration Example
# ~/.config/alacritty/alacritty.toml
[general]
live_config_reload = true
import = ["~/.config/alacritty/themes/dracula.toml"]
[window]
opacity = 0.92
blur = true
decorations = "full"
startup_mode = "Windowed"
dynamic_title = true
[window.dimensions]
columns = 140
lines = 45
[window.padding]
x = 12
y = 12
[scrolling]
history = 50000
multiplier = 3
[font]
size = 13.0
[font.normal]
family = "JetBrainsMono Nerd Font"
style = "Regular"
[cursor]
style = { shape = "Block", blinking = "On" }
blink_interval = 500
[selection]
save_to_clipboard = true
[terminal]
shell = { program = "/bin/zsh", args = ["-l"] }
Alacritty represents a modern approach to terminal emulation, proving that simplicity and performance need not be mutually exclusive. For users who value raw speed and are comfortable managing advanced features through external tools, Alacritty provides an uncompromising foundation for terminal-based workflows.
Download Options
Safe & Secure
Verified and scanned for viruses
Regular Updates
Always get the latest version
24/7 Support
Help available when you need it