Alacritty - Terminal acelerado por GPU
*Ultima referencia Alacritty para rendimiento, configuración y productividad del modo Vi *
"Clase de la hoja"
########################################################################################################################################################################################################################################################## Copiar todos los comandos
########################################################################################################################################################################################################################################################## Generar PDF seleccionado/button
■/div titulada
Alacritty es un emulador terminal acelerado por GPU escrito en Rust. Diseñado con rendimiento y sencillez en mente, Alacritty se centra en hacer una cosa excepcionalmente bien: proporcionar la experiencia terminal más rápida posible. A diferencia de los terminales de alta tensión, los delegados de Alacritty gestión de ventanas, pestañas y multiplexación a herramientas externas, lo que le permite alcanzar velocidad y eficiencia sin igual. Esta hoja de trampa completa cubre atajos esenciales, opciones de configuración y funciones de modo Vi para maximizar su productividad con Alacritty.
Comienzo
Instalación
# macOS (Homebrew)
brew install --cask alacritty
# macOS (MacPorts)
sudo port install alacritty
# Ubuntu/Debian
sudo apt install alacritty
# Fedora/RHEL
sudo dnf install alacritty
# Arch Linux
sudo pacman -S alacritty
# From source (Rust required)
git clone https://github.com/alacritty/alacritty.git
cd alacritty
cargo build --release
Configuración de configuración
# Create config directory
mkdir -p ~/.config/alacritty
# Create configuration file
touch ~/.config/alacritty/alacritty.toml
# Alternative config locations
# macOS: ~/.config/alacritty/alacritty.toml
# Linux: ~/.config/alacritty/alacritty.toml
# Windows: %APPDATA%\alacritty\alacritty.toml
Atajos de teclado predeterminados
Operaciones básicas
# Copy/Paste
Ctrl+Shift+C # Copy selection
Ctrl+Shift+V # Paste from clipboard
Ctrl+Shift+X # Copy and clear selection
# Clear screen
Ctrl+L # Clear screen (shell command)
# Font size adjustment
Ctrl+Plus # Increase font size
Ctrl+Minus # Decrease font size
Ctrl+0 # Reset font size to default
Scrolling
# Page scrolling
Shift+PageUp # Scroll page up
Shift+PageDown # Scroll page down
# Line scrolling
Shift+Up # Scroll line up
Shift+Down # Scroll line down
# Scroll to extremes
Shift+Home # Scroll to top
Shift+End # Scroll to bottom
Modo Vi
# Toggle Vi mode
Ctrl+Shift+Space # Enter/exit Vi mode
# Navigation in Vi mode
h, j, k, l # Left, down, up, right
w, b # Word forward/backward
0, $ # Line start/end
g, G # Buffer start/end
Ctrl+F, Ctrl+B # Page forward/backward
Ctrl+U, Ctrl+D # Half page up/down
# Selection in Vi mode
v # Start normal selection
V # Start line selection
Ctrl+V # Start block selection
y # Copy selection
Escape # Clear selection
# Search in Vi mode
/ # Search forward
? # Search backward
n # Next search result
N # Previous search result
Configuración
Configuración básica (alacritty.toml)
# Window settings
[window]
opacity = 0.9
decorations = "full"
startup_mode = "Windowed"
dynamic_title = true
# Font configuration
[font]
size = 14.0
[font.normal]
family = "JetBrains Mono"
style = "Regular"
[font.bold]
family = "JetBrains Mono"
style = "Bold"
[font.italic]
family = "JetBrains Mono"
style = "Italic"
# Colors (example: One Dark theme)
[colors.primary]
background = "#1e2127"
foreground = "#abb2bf"
[colors.normal]
black = "#1e2127"
red = "#e06c75"
green = "#98c379"
yellow = "#d19a66"
blue = "#61afef"
magenta = "#c678dd"
cyan = "#56b6c2"
white = "#abb2bf"
[colors.bright]
black = "#5c6370"
red = "#e06c75"
green = "#98c379"
yellow = "#d19a66"
blue = "#61afef"
magenta = "#c678dd"
cyan = "#56b6c2"
white = "#ffffff"
# Cursor settings
[cursor]
style = "Block"
unfocused_hollow = true
# Scrolling
[scrolling]
history = 10000
multiplier = 3
# Bell
[bell]
animation = "EaseOutExpo"
duration = 0
Configuración avanzada
# Environment variables
[env]
TERM = "alacritty"
WINIT_X11_SCALE_FACTOR = "1.0"
# Shell configuration
[shell]
program = "/bin/zsh"
args = ["--login"]
# Working directory
working_directory = "/home/user"
# Live config reload
live_config_reload = true
# Alt as Esc
alt_send_esc = true
# Mouse settings
[mouse]
hide_when_typing = true
[mouse.double_click]
threshold = 300
[mouse.triple_click]
threshold = 300
# Selection
[selection]
semantic_escape_chars = ",│`|:\"' ()[]\\{\\}<>"
save_to_clipboard = true
# Debug settings
[debug]
render_timer = false
persistent_logging = false
log_level = "Warn"
print_events = false
Cadenas de clave personalizadas
[[keyboard.bindings]]
key = "N"
mods = "Control|Shift"
action = "SpawnNewInstance"
[[keyboard.bindings]]
key = "F"
mods = "Control|Shift"
action = "SearchForward"
[[keyboard.bindings]]
key = "B"
mods = "Control|Shift"
action = "SearchBackward"
[[keyboard.bindings]]
key = "C"
mods = "Control|Shift"
mode = "Vi"
action = "ClearSelection"
[[keyboard.bindings]]
key = "I"
mode = "Vi"
action = "ScrollToBottom"
[[keyboard.bindings]]
key = "I"
mode = "Vi"
action = "ToggleViMode"
# Custom commands
[[keyboard.bindings]]
key = "T"
mods = "Control|Shift"
command = \\{ program = "tmux", args = ["new-window"] \\}
[[keyboard.bindings]]
key = "Return"
mods = "Control|Shift"
command = \\{ program = "alacritty", args = ["--working-directory", "/tmp"] \\}
Características del modo Vi
Introduciendo el modo Vi
# Default binding
Ctrl+Shift+Space # Toggle Vi mode
# Custom binding example
[[keyboard.bindings]]
key = "Space"
mods = "Control"
action = "ToggleViMode"
Comandos de navegación
# Character movement
h # Move left
j # Move down
k # Move up
l # Move right
# Word movement
w # Next word start
e # Next word end
b # Previous word start
ge # Previous word end
# Line movement
0 # Line start
^ # First non-blank character
$ # Line end
g_ # Last non-blank character
# Screen movement
H # Top of screen
M # Middle of screen
L # Bottom of screen
# Buffer movement
gg # Buffer start
G # Buffer end
Ctrl+F # Page forward
Ctrl+B # Page backward
Ctrl+U # Half page up
Ctrl+D # Half page down
Comandos de selección
# Selection modes
v # Normal selection
V # Line selection
Ctrl+V # Block selection
Alt+V # Semantic selection
# Selection operations
y # Copy selection
Escape # Clear selection
Enter # Open selection (URLs, files)
# Select text objects
iw # Inner word
aw # A word (including spaces)
i" # Inside quotes
a" # Around quotes
i( # Inside parentheses
a( # Around parentheses
Comandos de búsqueda
# Search operations
/ # Search forward
? # Search backward
n # Next match
N # Previous match
# Search modifiers
/pattern\c # Case insensitive search
/\<word\> # Whole word search
Esquemas de color
Esquemas de color popular
# Dracula theme
[colors.primary]
background = "#282a36"
foreground = "#f8f8f2"
[colors.normal]
black = "#000000"
red = "#ff5555"
green = "#50fa7b"
yellow = "#f1fa8c"
blue = "#bd93f9"
magenta = "#ff79c6"
cyan = "#8be9fd"
white = "#bfbfbf"
# Solarized Dark
[colors.primary]
background = "#002b36"
foreground = "#839496"
[colors.normal]
black = "#073642"
red = "#dc322f"
green = "#859900"
yellow = "#b58900"
blue = "#268bd2"
magenta = "#d33682"
cyan = "#2aa198"
white = "#eee8d5"
# Monokai
[colors.primary]
background = "#272822"
foreground = "#f8f8f2"
[colors.normal]
black = "#272822"
red = "#f92672"
green = "#a6e22e"
yellow = "#f4bf75"
blue = "#66d9ef"
magenta = "#ae81ff"
cyan = "#a1efe4"
white = "#f8f8f2"
Cambio de color dinámico
# Using alacritty-colorscheme tool
cargo install alacritty-colorscheme
# Apply theme
alacritty-colorscheme -a dracula
# List available themes
alacritty-colorscheme -l
# Toggle between themes
alacritty-colorscheme -t
Optimización del rendimiento
GPU Aceleración
# Renderer settings
[renderer]
backend = "glsl3" # or "gles2" for older systems
# Performance settings
[window]
dynamic_padding = false
[scrolling]
faux_multiplier = 3
# Disable unnecessary features for performance
[debug]
render_timer = false
Gestión de memoria
# Scrollback buffer
[scrolling]
history = 5000 # Reduce for lower memory usage
# Font settings for performance
[font]
use_thin_strokes = true # macOS only
Integración con herramientas externas
Tmux Integration
# Tmux-aware key bindings
[[keyboard.bindings]]
key = "H"
mods = "Control"
chars = "\u0002h" # Tmux prefix + h
[[keyboard.bindings]]
key = "J"
mods = "Control"
chars = "\u0002j" # Tmux prefix + j
# Tmux configuration for Alacritty
# In ~/.tmux.conf
set -g default-terminal "alacritty"
set -ga terminal-overrides ",alacritty:Tc"
Integración Shell
# Zsh integration
# In ~/.zshrc
if [[ "$TERM" == "alacritty" ]]; then
# Alacritty-specific settings
export TERM_PROGRAM="alacritty"
fi
# Fish integration
# In ~/.config/fish/config.fish
if test "$TERM" = "alacritty"
# Alacritty-specific settings
set -x TERM_PROGRAM alacritty
end
Window Manager Integration
# i3 window manager
# In ~/.config/i3/config
bindsym $mod+Return exec alacritty
bindsym $mod+Shift+Return exec alacritty --working-directory /tmp
# Sway window manager
# In ~/.config/sway/config
bindsym $mod+Return exec alacritty
bindsym $mod+Shift+Return exec alacritty --working-directory /tmp
Opciones de línea de mando
Uso básico
# Start Alacritty
alacritty
# Specify config file
alacritty --config-file /path/to/config.toml
# Set working directory
alacritty --working-directory /path/to/dir
# Execute command
alacritty -e vim file.txt
# Set title
alacritty --title "My Terminal"
# Set class (X11)
alacritty --class MyClass
# Fullscreen
alacritty --option window.startup_mode=Fullscreen
Opciones avanzadas
# Override config options
alacritty --option font.size=16
alacritty --option colors.primary.background="#000000"
# Multiple overrides
alacritty \
--option font.size=14 \
--option window.opacity=0.8 \
--option colors.primary.background="#1e1e1e"
# Print available options
alacritty --print-events
# Version information
alacritty --version
# Help
alacritty --help
Solución de problemas
Cuestiones comunes
# Font rendering issues
# Try different font families
[font.normal]
family = "DejaVu Sans Mono" # Fallback font
# Performance issues
# Disable GPU acceleration
[renderer]
backend = "gles2"
# Color issues
# Check terminal capabilities
echo $TERM
infocmp alacritty
# Key binding conflicts
# Test with minimal config
alacritty --config-file /dev/null
Modo de depuración
# Enable debug logging
[debug]
log_level = "Debug"
persistent_logging = true
print_events = true
# Log file locations
# Linux: ~/.cache/alacritty/alacritty.log
# macOS: ~/Library/Caches/alacritty/alacritty.log
# Windows: %LOCALAPPDATA%\alacritty\alacritty.log
Validación de configuración
# Test configuration
alacritty --config-file ~/.config/alacritty/alacritty.toml --print-events
# Validate TOML syntax
# Use online TOML validators or:
python3 -c "import toml; toml.load('~/.config/alacritty/alacritty.toml')"
Consejos y mejores prácticas
Consejos de rendimiento
# Optimal settings for performance
[scrolling]
history = 5000 # Reasonable scrollback
multiplier = 3 # Smooth scrolling
[font]
size = 12.0 # Smaller fonts are faster
[window]
dynamic_padding = false # Disable for performance
Integración del flujo de trabajo
# Use with terminal multiplexers
# Tmux for session management
# Screen for simple multiplexing
# Combine with window managers
# i3, sway, or dwm for tiling
# Use Alacritty as default terminal
# Shell configuration
# Optimize shell startup time
# Use fast prompts (starship, pure)
Consejos de personalización
# Theme switching script
#!/bin/bash
THEME_DIR="~/.config/alacritty/themes"
CURRENT_THEME=$(readlink ~/.config/alacritty/current-theme.toml)
case "$1" in
"dark")
ln -sf "$THEME_DIR/dark.toml" ~/.config/alacritty/current-theme.toml
;;
"light")
ln -sf "$THEME_DIR/light.toml" ~/.config/alacritty/current-theme.toml
;;
esac
# Include in main config
import = ["~/.config/alacritty/current-theme.toml"]
Consideraciones de seguridad
# Secure configuration
# Set appropriate file permissions
chmod 600 ~/.config/alacritty/alacritty.toml
# Avoid storing sensitive data in config
# Use environment variables instead
# Regular updates
# Keep Alacritty updated for security patches
El enfoque de Alacritty en el rendimiento y la simplicidad lo convierte en una excelente opción para los usuarios que priorizan la velocidad y la eficiencia sobre las características incorporadas. Su aceleración GPU, amplias opciones de personalización y el modo Vi proporcionan una base potente para un flujo de trabajo terminal altamente optimizado. Al aprovechar herramientas externas para la gestión de ventanas y la multiplexación, Alacritty logra su objetivo de ser el emulador terminal más rápido disponible manteniendo la flexibilidad necesaria para el trabajo de desarrollo profesional.