Wezterm en Mac: la terminal definitiva con tmux y zoxide
Monta la terminal perfecta en Mac con Wezterm, el prompt Starship, tmux y zoxide. Guía paso a paso con instalación, configuración y consejos de productividad.
Actualizado Publicado 15 min de lectura

Wezterm es un emulador de terminal moderno escrito en Rust al que siempre vuelvo. Está acelerado por GPU, se configura mediante scripts Lua y tiene un multiplexor integrado. Todo lo que importa cuando vives en una terminal ocho horas al día.
Características clave:
- Aceleración por GPU para un desplazamiento fluido, incluso con salida pesada.
- Configuración en Lua: programable, no un simple archivo de configuración estático.
- Multiplexor integrado: paneles, pestañas y espacios de trabajo sin tmux.
- Soporte de ligaduras para fuentes de programación.
- Multiplataforma: macOS, Windows y Linux con la misma configuración.
- Color real (24 bits) y una gran biblioteca de esquemas de color integrada.
- Renderizado de imágenes directamente en la terminal.
Ghostty 1.0 (lanzado en diciembre de 2024) es otra opción sólida y nativa de macOS si quieres un terminal basado en Zig con apariencia y comportamiento nativos. Wezterm sigue ganando para mí en configurabilidad con Lua, multiplexación integrada y portabilidad de la configuración entre plataformas. Si quieres explorar Ghostty, consulta la guía de configuración del terminal Ghostty.
Coste: todo lo de esta guía es gratis
Todas las herramientas de esta guía (Wezterm, Starship, tmux, zoxide, Homebrew) son gratuitas y de código abierto (licencias MIT o igual de permisivas). Sin suscripciones ni planes de pago.
Si te interesa ver algunas apps gratuitas e interesantes para Mac, puedes consultar la sección de apps para Mac de toolhunt.net.
Instala y configura Wezterm en Mac
Todo lo que sigue parte de Homebrew. Una vez instalado, el resto son comandos de copiar y pegar.
Instala Homebrew
Abre tu terminal y ejecuta:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Sigue las instrucciones en pantalla. Puede que necesites tu contraseña del sistema. Verifica con:
brew --version¿Permiso denegado?
Si te encuentras con errores de permisos, ejecuta primero xcode-select --install para obtener las herramientas de línea de comandos de Xcode, y luego reintenta.
Instala Wezterm
brew install --cask weztermLánzalo desde Aplicaciones o Spotlight (Cmd+Espacio, escribe “Wezterm”).
Instala Git
brew install gitVerifica:
git --versionInstala Meslo Nerd Font
Las Nerd Fonts añaden glifos relacionados con la programación (iconos) a tu terminal. Meslo es clara, legible y está ampliamente soportada.
brew install font-meslo-lg-nerd-fontReinicia Wezterm después de instalar la fuente. Wezterm ya incluye Nerd Font Symbols v3.3.0 como respaldo, pero instalar Meslo explícitamente ofrece la mejor experiencia con Powerlevel10k, Starship o cualquier prompt que use glifos de iconos.
Configura el archivo de configuración de Wezterm
Crea el archivo de configuración
touch ~/.wezterm.luaÁbrelo en tu editor preferido:
vim ~/.wezterm.luaConfigura Wezterm
Pega esta configuración Lua en ~/.wezterm.lua:
-- Pull in the wezterm API
local wezterm = require("wezterm")
-- This will hold the configuration.
local config = wezterm.config_builder()
-- This is where you actually apply your config choices
config.font = wezterm.font("MesloLGS Nerd Font Mono")
config.font_size = 19
config.window_decorations = "RESIZE|MACOS_USE_BACKGROUND_COLOR_AS_TITLEBAR_COLOR"
config.window_background_opacity = 0.8
config.macos_window_background_blur = 10
-- my coolnight colorscheme:
config.colors = {
foreground = "#CBE0F0",
background = "#011423",
cursor_bg = "#47FF9C",
cursor_border = "#47FF9C",
cursor_fg = "#011423",
selection_bg = "#033259",
selection_fg = "#CBE0F0",
ansi = { "#214969", "#E52E2E", "#44FFB1", "#FFE073", "#0FC5ED", "#a277ff", "#24EAF7", "#24EAF7" },
brights = { "#214969", "#E52E2E", "#44FFB1", "#FFE073", "#A277FF", "#a277ff", "#24EAF7", "#24EAF7" },
}
-- and finally, return the configuration to wezterm
return configQué hace esto:
- Establece la fuente en Meslo Nerd Font Mono (la que acabamos de instalar).
- Tamaño de fuente 19. Ajústalo a tu pantalla y preferencia.
window_decorations = "RESIZE|MACOS_USE_BACKGROUND_COLOR_AS_TITLEBAR_COLOR"te da una ventana redimensionable con una barra de título que combina con el fondo de tu terminal. Se ve más limpio en macOS.- Fondo al 80% de opacidad con un efecto de desenfoque detrás (solo macOS).
- Esquema de color personalizado “coolnight”: fondo azul oscuro con colores de texto brillantes y legibles.
Después de guardar, Wezterm detecta los cambios y muestra una ventana de error si hay campos obsoletos o inválidos. Si todo se ve bien, la configuración se aplica automáticamente. También puedes forzar una recarga con Ctrl+Shift+R.
Nuevos ajustes de Wezterm específicos de macOS
Estas opciones solo funcionan en macOS:
Ajustes exclusivos de macOS
Estas opciones de configuración no tienen efecto en Linux ni en Windows.
-- Extend terminal content behind the MacBook notch in fullscreen
config.macos_fullscreen_extend_behind_notch = true
-- Remove rounded corners (sharp square look)
-- Add MACOS_FORCE_SQUARE_CORNERS to window_decorations:
-- config.window_decorations = "RESIZE|MACOS_USE_BACKGROUND_COLOR_AS_TITLEBAR_COLOR|MACOS_FORCE_SQUARE_CORNERS"
-- Center content when the window isn't an exact cell-multiple size
config.window_content_alignment = "Center"El soporte del notch es útil en los MacBook más nuevos. Obtienes algunas filas extra de contenido de terminal en modo pantalla completa. La barra de título a juego con el color hace que Wezterm se funda con su propio fondo en lugar de tener una franja de barra de título de macOS que contraste.
⚠️ Estado de Powerlevel10k y opciones de prompt
Powerlevel10k está en soporte vital
El mantenedor ha declarado que el proyecto tiene “soporte muy limitado, sin nuevas funciones, y la mayoría de los bugs quedarán sin corregir”. Todavía funciona hoy, pero considera Starship más abajo como una alternativa mantenida activamente.
Powerlevel10k (p10k) sigue siendo el prompt de Zsh más popular (más de 54k estrellas en GitHub) y aún funciona. Pero el proyecto está prácticamente congelado. Si estás montando una configuración desde cero, Starship es la mejor apuesta.
Starship (Recomendado)
Por qué Starship: multi-shell (zsh, fish, bash), escrito en Rust, mantenido activamente, configuración TOML sencilla. Sin ataduras a zsh. Si cambias de shell más adelante (mira la comparación Fish vs Zsh), tu prompt te acompaña.
Instala y activa:
brew install starship
echo 'eval "$(starship init zsh)"' >> ~/.zshrc
source ~/.zshrcCrea una configuración básica en ~/.config/starship.toml:
# See https://starship.rs/presets/ for ready-made presets
# Example: enable all default modules
format = "$all"
[git_status]
format = '([$all_status$ahead_behind]($style) )'
[nodejs]
format = "via [🤖 $version](bold green) "Starship incluye temas predefinidos que puedes explorar con starship preset. El preset Catppuccin Powerline es popular si quieres un estilo powerline sin configuración manual.
Para más sobre Starship, mira la guía de Starship y Ghostty o Starship con Fish shell si usas Fish.
Powerlevel10k (Heredado)
p10k todavía funciona bien hoy. Instálalo si quieres, pero ten en cuenta que los bugs no se corregirán.
brew install powerlevel10k
echo "source $(brew --prefix)/share/powerlevel10k/powerlevel10k.zsh-theme" >> ~/.zshrc
source ~/.zshrcEn la primera carga, el asistente de configuración de p10k te guía por el estilo del prompt, los segmentos (estado de git, hora, etc.), los colores y los iconos. Puedes volver a ejecutarlo en cualquier momento con p10k configure.
Ajústalo más tarde editando ~/.p10k.zsh.
Configura el plugin zsh-autosuggestions
zsh-autosuggestions muestra sugerencias atenuadas mientras escribes, basadas en tu historial de comandos. Pulsa la tecla de flecha derecha para aceptar una sugerencia.
brew install zsh-autosuggestions
echo "source $(brew --prefix)/share/zsh-autosuggestions/zsh-autosuggestions.zsh" >> ~/.zshrc
source ~/.zshrcPara más detalles sobre el comportamiento del autocompletado de zsh, consulta la guía completa de autocompletado de zsh.
Configura zsh-syntax-highlighting
zsh-syntax-highlighting colorea los comandos mientras escribes: comandos válidos en verde, errores en rojo, rutas de archivos existentes subrayadas. Detecta erratas antes de que pulses Enter.
brew install zsh-syntax-highlighting
echo "source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ~/.zshrc
source ~/.zshrcPara más opciones de personalización, consulta la guía completa de resaltado de sintaxis de zsh. También puedes explorar más plugins útiles en los mejores plugins de Zsh para 2026.
Mejora Wezterm con tmux y zoxide
Wezterm ya es capaz por sí solo, pero tmux y zoxide cubren huecos que importan en flujos de trabajo reales: sesiones persistentes y saltos rápidos entre directorios.
Qué es tmux y cómo puede ayudarte
tmux es un multiplexor de terminal. Te permite crear múltiples sesiones de terminal dentro de una sola ventana, desconectarte de ellas y volver a conectarte más tarde. Esto es crítico para trabajar en servidores remotos: puedes conectarte por SSH, iniciar una sesión de tmux, desconectarte y retomar justo donde lo dejaste.
tmux 3.7 es la versión actual
tmux 3.6+ añadió barras de desplazamiento y temas Mode 2031. brew install tmux te da la última versión.
Instala e inicia:
brew install tmux
tmuxPara una introducción práctica, consulta la guía básica de tmux.
Multiplexación integrada de Wezterm vs tmux independiente
Wezterm ya tiene su propio multiplexor: paneles, pestañas y espacios de trabajo integrados. Para flujos de trabajo puramente locales (dividir tu terminal en paneles, cambiar entre pestañas), el mux integrado de Wezterm es suficiente. No necesitas tmux en absoluto.
Dónde tmux sigue ganando:
- Sesiones remotas persistentes: conéctate por SSH a un servidor, inicia tmux, desconéctate y vuelve más tarde. El mux de Wezterm no persiste tras desconexiones SSH.
- Compartir sesiones: dos usuarios pueden conectarse a la misma sesión de tmux (programación en pareja en una máquina remota).
- Supervivencia a reinicios: las sesiones de tmux sobreviven a reinicios locales si el servidor remoto sigue en pie.
Si solo trabajas en local, sáltate tmux y usa los paneles integrados de Wezterm (Ctrl+Shift+D para división horizontal, Ctrl+Shift+E para división vertical).
Modo de control tmux -CC de Wezterm
Wezterm ahora tiene un soporte “muy usable” de tmux -CC. Ejecutar tmux -CC dentro de Wezterm inicia tmux en modo de control, donde Wezterm actúa como el cliente GUI. Obtienes la persistencia de sesiones de tmux con el renderizado y los atajos de teclado de Wezterm. Es una opción híbrida para usuarios avanzados que quieren lo mejor de ambos mundos.
Qué es zoxide y cómo puede ayudarte
zoxide reemplaza cd con una versión más inteligente que aprende de tu uso. Después de unos días, z project te lleva a ~/code/my-project sin escribir la ruta completa. Es una de esas herramientas que parecen una tontería hasta que intentas volver atrás.
Instala y activa:
brew install zoxide
echo 'eval "$(zoxide init zsh)"' >> ~/.zshrc
source ~/.zshrcUso: reemplaza cd con z. Eso es todo. Cuanto más lo usas, más inteligente se vuelve.
zoxide tiene un subcomando doctor que comprueba si los hooks de tu shell están bien configurados. Ejecútalo si z no parece funcionar:
zoxide doctorPara profundizar, consulta la guía completa de zoxide.
Verifica y soluciona problemas de tu configuración
Después de completar todos los pasos anteriores, ejecuta estas comprobaciones para confirmar que todo funciona.
Verificación de la fuente
Ejecuta esto dentro de Wezterm:
wezterm ls-fonts --text "Test"Debería listar MesloLGS Nerd Font Mono. Si muestra una fuente de respaldo, reinicia Wezterm o comprueba que el nombre de la fuente en tu configuración coincida exactamente.
Detección de errores de configuración
Wezterm ahora muestra una ventana de error si tu ~/.wezterm.lua tiene campos obsoletos o inválidos. Si ves esta ventana después de editar tu configuración:
- Lee el mensaje de error. Indica el campo específico.
- Corrige la sintaxis Lua o el nombre del campo.
- Pulsa
Ctrl+Shift+Rpara recargar la configuración sin reiniciar Wezterm.
Ctrl+Shift+L abre la consola de depuración / REPL de Lua, útil para inspeccionar errores o probar valores de configuración en vivo.
Diagnósticos de zoxide y del prompt
# Check zoxide shell integration
zoxide doctor
# Verify terminal type
echo $TERM
# Should show: xterm-256color
# Starship: browse available presets
starship preset
# Powerlevel10k: re-run configuration wizard
p10k configureFallos comunes
Permiso denegado al instalar con brew
Ejecuta xcode-select --install primero para obtener las herramientas de línea de comandos de Xcode, y luego reintenta el comando brew install.
La fuente no aparece en Wezterm
Reinicia Wezterm después de instalar la fuente. Ejecuta wezterm ls-fonts --text "Test" para confirmar qué fuente está activa. Asegúrate de que el nombre de la fuente en tu .wezterm.lua coincida con lo que instaló Homebrew. El nombre distingue mayúsculas y minúsculas.
Comando z de zoxide no encontrado
Asegúrate de que eval "$(zoxide init zsh)" esté en tu ~/.zshrc. Abre una pestaña nueva del terminal o ejecuta source ~/.zshrc. Ejecuta zoxide doctor para diagnosticar más a fondo.
El prompt se ve roto o vacío
Para Starship: ejecuta starship preset para explorar los presets, o comprueba que eval "$(starship init zsh)" sea la última línea relacionada con el prompt en tu ~/.zshrc. Para Powerlevel10k: ejecuta p10k configure para volver a lanzar el asistente. Si los colores se ven mal en tmux, añade set -g default-terminal "tmux-256color" a ~/.tmux.conf.
Alternativa: terminal Ghostty
Ghostty 1.0 (lanzado en diciembre de 2024) es un terminal nativo de macOS escrito en Zig por Mitchell Hashimoto. Es rápido, está acelerado por GPU y se siente nativo en macOS como pocos terminales multiplataforma lo hacen.
Dónde Wezterm sigue teniendo ventaja:
- Configuración en Lua: la configuración de Wezterm es un lenguaje de programación completo. Lógica condicional, funciones, valores dinámicos. Ghostty usa un formato clave-valor más simple.
- Multiplexor integrado: los paneles y espacios de trabajo de Wezterm funcionan sin tmux. Ghostty no tiene mux integrado.
- Multiplataforma: el mismo
.wezterm.luafunciona en macOS, Linux y Windows. Ghostty todavía está poniéndose al día en Linux.
Si te pica la curiosidad por Ghostty, mira la guía de configuración del terminal Ghostty. Para un prompt que funciona genial con cualquiera de los dos terminales, consulta la guía de Starship y Ghostty.
Conclusión
Ahora tienes un stack de terminal construido con herramientas gratuitas y de código abierto: Wezterm como emulador, Starship (o p10k) para el prompt, tmux para sesiones persistentes y zoxide para saltos rápidos entre directorios. Todo esto funciona en macOS con Homebrew. Sin apps de pago, sin suscripciones.
La configuración en Lua de Wezterm lo hace único en flexibilidad entre los terminales modernos. Puedes ajustar colores, atajos de teclado, comportamiento de ventanas y lógica condicional, todo en un solo archivo. Empieza con la configuración de arriba y luego experimenta.
Si quieres profundizar, explora la guía de Starship y Ghostty o echa un vistazo a los mejores plugins de Fish shell si estás pensando en cambiar de shell.


