Aller au contenu

Alacritty - Terminal Accéléré GPU

*Ultimate Alacritty référence pour la performance, la configuration et la productivité du mode Vi *

Copier toutes les commandes Générer PDF

Alacritty est un émulateur terminal accéléré par le GPU écrit en Rust. Conçu avec des performances et une simplicité à l'esprit, Alacritty se concentre sur une chose exceptionnellement bien: fournir l'expérience terminal la plus rapide possible. Contrairement aux terminaux lourds, Alacritty délègue la gestion des fenêtres, les onglets et le multiplexage aux outils externes, ce qui lui permet d'atteindre une vitesse et une efficacité inégalées. Cette feuille de tri couvre les raccourcis essentiels, les options de configuration et les fonctionnalités en mode Vi pour maximiser votre productivité avec Alacritty.

Commencer

Installation

# 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

Configuration Configuration

# 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
```_

## Raccourcis clavier par défaut

### Opérations de base

```bash
# 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
```_

### Déroulement

```bash
# 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

Mode 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

Configuration

Configuration de base (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

Configuration avancée

# 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

Reliures de clés personnalisées

[[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"] \\}

Caractéristiques du mode Vi

Entrée en mode Vi

# Default binding
Ctrl+Shift+Space                         # Toggle Vi mode

# Custom binding example
[[keyboard.bindings]]
key = "Space"
mods = "Control"
action = "ToggleViMode"

Commandes de navigation

# 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

Commandes de sélection

# 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

Commandes de recherche

# Search operations
/                                        # Search forward
?                                        # Search backward
n                                        # Next match
N                                        # Previous match

# Search modifiers
/pattern\c                               # Case insensitive search
/\<word\>                                # Whole word search

Schémas de couleurs

Schémas de couleurs populaires

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

Changement de couleur dynamique

# 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

Optimisation des performances

Accélération du GPU

# 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

Gestion de la mémoire

# Scrollback buffer
[scrolling]
history = 5000  # Reduce for lower memory usage

# Font settings for performance
[font]
use_thin_strokes = true  # macOS only

Intégration avec les outils externes

Intégration Tmux

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

Intégration 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

Intégration du gestionnaire de fenêtres

# 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

Options de ligne de commande

Utilisation de base

# 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

Options avancées

# 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

Dépannage

Questions communes

# 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

Mode de débogage

# 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

Validation de configuration

# 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')"

Conseils et pratiques exemplaires

Conseils de performance

# 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

Intégration des flux de travail

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

Conseils de personnalisation

# 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"]

Considérations en matière de sécurité

# 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

L'accent mis par Alacritty sur la performance et la simplicité en fait un excellent choix pour les utilisateurs qui privilégient la vitesse et l'efficacité par rapport aux fonctionnalités intégrées. Son accélération GPU, ses options de personnalisation étendues et le mode Vi fournissent une base puissante pour un flux de travail terminal hautement optimisé. En tirant parti des outils externes pour la gestion des fenêtres et le multiplexage, Alacritty atteint son objectif d'être l'émulateur terminal le plus rapide disponible tout en maintenant la flexibilité nécessaire pour le développement professionnel.