¿Qué es Alacritty?

  • Alacritty es un emulador de Terminal personalizable, de alto rendimiento al estar basado en GPU y estar escrito en Rust.
  • Es minimalista, solo viene con lo basico y no trae tantas caracteristicas innecesarias

caracteristicas

  • puedes abrir enlaces con un ctrl click
  • ctrl +, ctrl -

Instalacion de Alacritty

Si no vas a necesitar de añadir un icono, autocompletado del shell, o documentacion, puedes usar cargo simplemente:

cargo install alacritty

Personalizar Alacritty

copia el archivo de alacritty.yml en la ruta ~/.config/alacritty/alacritty.yml

Temas en Alacritty

Alacritty en Windows

Tabs en Alacritty

La forma mas tipica de tener multiples terminales en Alacritty es usando Tmux

Xterm

una asunto importante con alacritty es que no soportar los colores de xterm, asi que si usas programas como ssh o tmux, este no aplicara el tema que uses. pero puedes usar este comando cada vez que los ejecutes:

TERM=xterm-256color ssh

o usar un alias en tu archivo bashrc, zshrc, o el que uses:

alias ssh='TERM=xterm-256color ssh'

Establecer tamaño de Alacritty

https://blog.khmersite.net/2021/11/set-alacritty-default-dimensions/


Guia Completa de Alacritty en Windows (y Linux)

Alacritty es un emulador de terminal minimalista, rápido y altamente configurable escrito en Rust. En esta guía aprenderás a configurarlo desde cero en Windows con PowerShell 7, incluyendo temas, fuentes, atajos de teclado, y cómo reutilizar tu configuración en Linux.

1. Configuración Básica

El archivo de configuración de Alacritty en Windows se encuentra en:

%APPDATA%\alacritty\alacritty.toml

Es decir: C:\Users\<tu-usuario>\AppData\Roaming\alacritty\alacritty.toml

En Linux la ruta es ~/.config/alacritty/alacritty.toml.

Si el archivo no existe, créalo manualmente. Alacritty usa formato TOML.

Configuración inicial

working_directory = "C:/Users/Fazt/Desktop"

[window]
decorations = "buttonless"
opacity = 0.95
blur = true
padding = { x = 8, y = 8 }

[window.dimensions]
columns = 100
lines = 30
  • working_directory: La carpeta donde se abre la terminal por defecto.
  • decorations: Controla los bordes de la ventana. "buttonless" oculta los botones de la barra de título pero mantiene el borde. "none" elimina todo (pero pierdes la capacidad de redimensionar con el mouse).
  • opacity: Transparencia de la ventana (0.0 a 1.0).
  • blur: Aplica desenfoque al fondo cuando la ventana es transparente.
  • padding: Espacio interno en píxeles entre el borde de la ventana y el texto.
  • dimensions: Tamaño inicial de la ventana en columnas y líneas.

Nota sobre el borde azul de Windows 11: Si al seleccionar la ventana de Alacritty ves un borde azul, eso no es de Alacritty. Es el "accent color" de Windows. Puedes cambiarlo en Settings > Personalization > Colors desactivando "Show accent color on title bars and window borders".

2. Fuentes y Nerd Fonts

Las Nerd Fonts son fuentes parcheadas que incluyen iconos de desarrollo. Son necesarias para que herramientas como Oh My Posh, Starship o Powerlevel10k muestren iconos correctamente.

Instalar JetBrainsMono Nerd Font

La forma más fácil es con Oh My Posh:

oh-my-posh font install JetBrainsMono

Importante: Cierra Alacritty antes de instalar o actualizar la fuente, ya que si está en uso no se podrán reemplazar los archivos.

Configurar la fuente

[font]
normal = { family = "JetBrainsMono Nerd Font" }
bold = { family = "JetBrainsMono Nerd Font" }
italic = { family = "JetBrainsMono Nerd Font" }
bold_italic = { family = "JetBrainsMono Nerd Font" }
size = 14

Nerd Fonts v2 vs v3

Las Nerd Fonts cambiaron los nombres de las familias de fuentes en la versión 3:

Variante Nerd Fonts v2 Nerd Fonts v3
Normal JetBrainsMono Nerd Font JetBrainsMono NF
Mono JetBrainsMono Nerd Font Mono JetBrainsMono NFM
Proporcional - JetBrainsMono NFP

Si al iniciar Alacritty ves un error como font not found, verifica qué versión tienes instalada. Puedes verificar los nombres disponibles con PowerShell:

[System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") | Out-Null
(New-Object System.Drawing.Text.InstalledFontCollection).Families |
  Where-Object { $_.Name -like "*JetBrains*" } |
  Select-Object -ExpandProperty Name

3. Temas

Alacritty tiene un repositorio oficial con más de 250 temas.

Instalar temas

Windows:

git clone https://github.com/alacritty/alacritty-theme "$env:APPDATA\alacritty\themes"

Linux:

git clone https://github.com/alacritty/alacritty-theme ~/.config/alacritty/themes

Aplicar un tema

Agrega la línea import al inicio de tu alacritty.toml:

Windows:

import = ["C:/Users/tu-usuario/AppData/Roaming/alacritty/themes/themes/monokai_charcoal.toml"]

Linux:

import = ["~/.config/alacritty/themes/themes/monokai_charcoal.toml"]

Temas populares

  • monokai_charcoal
  • tokyo_night / tokyo_night_enhanced / tokyo_night_storm
  • catppuccin_mocha / catppuccin_macchiato
  • dracula
  • gruvbox_dark
  • nord
  • one_dark
  • rose_pine
  • kanagawa_wave

Para cambiar de tema, solo modifica el nombre del archivo en la línea import.

4. Shell y PowerShell

Por defecto, Alacritty en Windows abre cmd.exe. Para usar PowerShell 7:

[shell]
program = "C:/Program Files/PowerShell/7/pwsh.exe"
args = ["-NoLogo"]
  • program: Ruta al ejecutable del shell.
  • args: -NoLogo oculta el banner de versión y el mensaje "Loading personal and system profiles took Xms".

Verificar la versión de PowerShell

Si tienes múltiples versiones de PowerShell instaladas, verifica cuál estás usando. Es común tener:

  • C:/Program Files/PowerShell/7/pwsh.exe (versión actual)
  • C:/Program Files (x86)/PowerShell/7/pwsh.exe (versión antigua)

Si ves un mensaje como "A new PowerShell stable release is available", probablemente estás apuntando a una versión vieja. Actualiza la ruta en tu config.

Desactivar notificación de actualización

Si no quieres ver el aviso de nueva versión de PowerShell, agrega esto al inicio de tu $PROFILE:

$Env:POWERSHELL_UPDATECHECK = 'Off'

Para editar tu profile: code $PROFILE o notepad $PROFILE.

5. Keybindings de PowerShell (PSReadLine)

Alacritty es solo un emulador de terminal. Los atajos para edición de línea (como borrar texto o cerrar la terminal) pertenecen al shell, no a Alacritty. Esto tiene la ventaja de que funcionan en cualquier terminal.

Agrega estos atajos a tu $PROFILE de PowerShell:

# PSReadLine keybindings
Set-PSReadLineKeyHandler -Chord 'Ctrl+u' -Function BackwardDeleteLine
Set-PSReadLineKeyHandler -Chord 'Ctrl+d' -Function DeleteCharOrExit

Atajos disponibles

Atajo Función Descripción
Ctrl+U BackwardDeleteLine Borra desde el cursor hasta el inicio de la línea
Ctrl+D DeleteCharOrExit Si hay texto, borra un carácter. Si la línea está vacía, cierra la terminal
Ctrl+K ForwardDeleteLine Borra desde el cursor hasta el final de la línea
Ctrl+A BeginningOfLine Mueve el cursor al inicio de la línea
Ctrl+E EndOfLine Mueve el cursor al final de la línea
Esc - Borra toda la línea (nativo de PowerShell)

Tip: Estos atajos (Ctrl+U, Ctrl+D, etc.) vienen por defecto en bash y zsh. En PowerShell necesitas configurarlos manualmente con PSReadLine.

6. Keybindings de Alacritty

Los keybindings de Alacritty se configuran en la sección [keyboard]:

[keyboard]
bindings = [
  { key = "N", mods = "Control|Shift", action = "CreateNewWindow" },
  { key = "F11", action = "ToggleFullscreen" },
]

Atajos por defecto

Atajo Acción
Ctrl+Shift+C Copiar
Ctrl+Shift+V Pegar
Ctrl+Shift++ Aumentar tamaño de fuente
Ctrl+- Disminuir tamaño de fuente
Ctrl+0 Restablecer tamaño de fuente

Atajos personalizados

Atajo Acción Descripción
Ctrl+Shift+N CreateNewWindow Abre una nueva ventana de Alacritty
F11 ToggleFullscreen Alterna entre pantalla completa y ventana

Acciones disponibles

Algunas acciones útiles: CreateNewWindow, ToggleFullscreen, Copy, Paste, ScrollPageUp, ScrollPageDown, ScrollToTop, ScrollToBottom, ResetFontSize, IncreaseFontSize, DecreaseFontSize.

Sobre los tabs

Alacritty no tiene tabs por diseño. Es intencionalmente minimalista. Si necesitas tabs, tus opciones son:

  • Usar múltiples ventanas con Ctrl+Shift+N
  • Usar un multiplexor de terminal como tmux o zellij (en Linux)
  • Usar Windows Terminal que sí tiene tabs nativos

7. Cursor

[cursor.style]
shape = "Beam"
blinking = "On"

Formas disponibles

Valor Descripción
"Block" Bloque sólido (por defecto)
"Underline" Línea debajo del carácter
"Beam" Línea vertical (como en editores de texto)

Parpadeo

Valor Descripción
"Off" Sin parpadeo
"On" Parpadeo siempre activo
"Always" Parpadeo siempre, incluso si la ventana no está enfocada

8. Scroll

[scrolling]
history = 50000

El valor por defecto es 10,000 líneas. Si trabajas con logs o salidas extensas, aumentar a 50,000 es recomendable. El valor máximo es 100,000. Puedes poner 0 para desactivar el scrollback.

Para hacer scroll, usa la rueda del mouse o Shift+PageUp / Shift+PageDown.

9. Selección y Mouse

[selection]
save_to_clipboard = true

[mouse]
bindings = [
  { mouse = "Right", action = "Copy" },
]
  • save_to_clipboard: Al seleccionar texto con el mouse, se copia automáticamente al portapapeles.
  • mouse.bindings: Click derecho copia la selección al portapapeles.

Selección rápida

  • Click y arrastrar: Selecciona texto
  • Doble click: Selecciona una palabra
  • Triple click: Selecciona una línea completa

10. URLs y Hints

El sistema de hints de Alacritty permite interactuar con patrones de texto como URLs.

[hints]
enabled = [
  {
    hyperlinks = true,
    regex = "(https?://)[^ ]+",
    command = { program = "cmd", args = ["/c", "start"] },
    post_processing = true,
    mouse = { mods = "Control", enabled = true },
    binding = { key = "U", mods = "Control|Shift" }
  }
]

Comportamiento

  • Ctrl+Click en una URL: La abre en el navegador por defecto.
  • Ctrl+Shift+U: Activa el modo hints, donde las URLs se resaltan con etiquetas. Escribe la etiqueta para abrir esa URL.

Diferencia entre Windows y Linux

El command para abrir URLs varía por sistema operativo:

OS Command
Windows { program = "cmd", args = ["/c", "start"] }
Linux { program = "xdg-open", args = [] }
macOS { program = "open", args = [] }

11. Dotfiles: Compartir Configuración entre Máquinas

La mejor forma de mantener tu configuración sincronizada entre máquinas es un repositorio de dotfiles.

Estructura recomendada

dotfiles/
├── README.md
├── .gitignore
├── alacritty/
│   ├── alacritty-windows.toml
│   ├── alacritty-linux.toml
│   ├── install.ps1          # Windows
│   └── install.sh           # Linux
├── ghostty/                  # futuro
├── tmux/                     # futuro
└── powershell/               # futuro

Crear el repositorio

mkdir dotfiles && cd dotfiles
git init
# ... agregar archivos ...
gh repo create dotfiles --public --source=. --remote=origin --push

Script de instalación para Windows (install.ps1)

$alacrittyDir = "$env:APPDATA\alacritty"

if (-not (Test-Path $alacrittyDir)) {
    New-Item -ItemType Directory -Path $alacrittyDir -Force
}

Copy-Item "alacritty-windows.toml" "$alacrittyDir\alacritty.toml" -Force

$themesDir = "$alacrittyDir\themes"
if (-not (Test-Path $themesDir)) {
    git clone https://github.com/alacritty/alacritty-theme $themesDir
}

Write-Host "Alacritty config installed!" -ForegroundColor Green

Script de instalación para Linux (install.sh)

#!/bin/bash
mkdir -p ~/.config/alacritty
cp alacritty-linux.toml ~/.config/alacritty/alacritty.toml

if [ ! -d ~/.config/alacritty/themes ]; then
  git clone https://github.com/alacritty/alacritty-theme ~/.config/alacritty/themes
fi

echo "Alacritty config installed!"

Diferencias clave entre Windows y Linux

Configuración Windows Linux
Shell C:/Program Files/PowerShell/7/pwsh.exe /bin/bash o /bin/zsh
Ruta de temas %APPDATA%\alacritty\themes\... ~/.config/alacritty/themes/...
Abrir URLs cmd /c start xdg-open
Decoraciones "buttonless" "None"
Working directory "C:/Users/User/Desktop" No necesario

Gestores de dotfiles alternativos

  • chezmoi: El más completo. Soporta templates para manejar diferencias entre sistemas operativos.
  • GNU Stow: Simple, usa symlinks. Ideal en Linux.
  • yadm: Funciona como git pero diseñado para dotfiles.

12. Configuración Final Completa

alacritty.toml (Windows)

import = ["C:/Users/tu-usuario/AppData/Roaming/alacritty/themes/themes/monokai_charcoal.toml"]

working_directory = "C:/Users/tu-usuario/Desktop"

[shell]
program = "C:/Program Files/PowerShell/7/pwsh.exe"
args = ["-NoLogo"]

[window]
decorations = "buttonless"
opacity = 0.95
blur = true
padding = { x = 8, y = 8 }

[window.dimensions]
columns = 100
lines = 30

[font]
normal = { family = "JetBrainsMono Nerd Font" }
bold = { family = "JetBrainsMono Nerd Font" }
italic = { family = "JetBrainsMono Nerd Font" }
bold_italic = { family = "JetBrainsMono Nerd Font" }
size = 14

[cursor.style]
shape = "Beam"
blinking = "On"

[scrolling]
history = 50000

[hints]
enabled = [
  {
    hyperlinks = true,
    regex = "(https?://)[^ ]+",
    command = { program = "cmd", args = ["/c", "start"] },
    post_processing = true,
    mouse = { mods = "Control", enabled = true },
    binding = { key = "U", mods = "Control|Shift" }
  }
]

[selection]
save_to_clipboard = true

[keyboard]
bindings = [
  { key = "N", mods = "Control|Shift", action = "CreateNewWindow" },
  { key = "F11", action = "ToggleFullscreen" },
]

[mouse]
bindings = [
  { mouse = "Right", action = "Copy" },
]

PowerShell $PROFILE

$Env:POWERSHELL_UPDATECHECK = 'Off'
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\zash.omp.json" | Invoke-Expression
Import-Module -Name Terminal-Icons

# PSReadLine keybindings
Set-PSReadLineKeyHandler -Chord 'Ctrl+u' -Function BackwardDeleteLine
Set-PSReadLineKeyHandler -Chord 'Ctrl+d' -Function DeleteCharOrExit

Guía Completa de Alacritty en Windows

1. Configuración Básica

  • Archivo de configuración: %APPDATA%\alacritty\alacritty.toml
  • Configurar shell (PowerShell 7)
  • Working directory
  • Dimensiones de ventana (columns, lines)
  • Decoraciones (buttonless, none)
  • Opacidad y blur

2. Fuentes y Nerd Fonts

  • Instalar JetBrainsMono Nerd Font con oh-my-posh
  • Diferencia entre Nerd Fonts v2 y v3 (nombres: "Nerd Font" vs "NF/NFM/NFP")
  • Configurar fuente en alacritty.toml (normal, bold, italic, bold_italic)
  • Tamaño de fuente

3. Temas

  • Clonar repositorio oficial de temas (alacritty/alacritty-theme)
  • Importar tema con import = [...]
  • Temas populares: tokyo_night_enhanced, monokai_charcoal, catppuccin, dracula, nord

4. Shell y PowerShell

  • Apuntar a la versión correcta de PowerShell (Program Files vs x86)
  • Ocultar banner de inicio con -NoLogo
  • Desactivar notificación de actualización ($Env:POWERSHELL_UPDATECHECK = 'Off')

5. Keybindings de PowerShell (PSReadLine)

  • Ctrl+U — Borrar línea hacia atrás (BackwardDeleteLine)
  • Ctrl+D — Cerrar terminal si la línea está vacía (DeleteCharOrExit)
  • Configuración en $PROFILE de PowerShell

6. Keybindings de Alacritty

  • Ctrl+Shift+N — Nueva ventana (CreateNewWindow)
  • F11 — Pantalla completa (ToggleFullscreen)
  • Ctrl+Shift+C / Ctrl+Shift+V — Copiar/Pegar (por defecto)

7. Cursor

  • Cambiar forma: Block, Underline, Beam
  • Activar parpadeo (blinking = "On")

8. Scroll

  • Aumentar historial de scroll (por defecto 10,000, recomendado 50,000)

9. Selección y Mouse

  • Auto copiar al seleccionar (save_to_clipboard = true)
  • Click derecho para copiar (mouse.bindings con Right → Copy)

10. URLs y Hints

  • Ctrl+Click para abrir URLs en el navegador
  • Configurar [hints] con regex, command y mouse bindings
  • Windows usa cmd /c start, Linux usa xdg-open
  • Ctrl+Shift+U para modo hints con teclado

11. Dotfiles: Compartir Configuración entre Máquinas

  • Crear repo de dotfiles en GitHub
  • Separar configs por OS (alacritty-windows.toml, alacritty-linux.toml)
  • Scripts de instalación (install.ps1 para Windows, install.sh para Linux)
  • Diferencias clave entre Windows y Linux (shell, rutas, decoraciones, open command)
  • Alternativas: chezmoi, GNU Stow, yadm

12. Tips Extras

  • Alacritty no tiene tabs por diseño (usar multiplexores o múltiples ventanas)
  • El borde azul de ventana activa es de Windows 11, no de Alacritty
  • Oh My Posh: actualizar con winget upgrade JanDeDobbeleer.OhMyPosh
  • Actualizar fuentes: cerrar Alacritty antes de reinstalar