Saltar a contenido

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

# 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.