Terminal a tu medida: zsh, oh-my-zsh, powerlevel10k y tmux

Índice

Si seguiste el artículo anterior tienes un Debian 13 sólido y cifrado. Ahora toca hacer que el terminal sea un sitio en el que apetezca trabajar. El bash por defecto de Debian hace lo que tiene que hacer, pero hay vida más allá. En este artículo montamos zsh con oh-my-zsh, el tema powerlevel10k y tmux para gestionar sesiones y paneles como se merece.

No es solo estética. El autocompletado inteligente de zsh, las sugerencias en tiempo real o la capacidad de tmux para mantener sesiones vivas aunque cierres el terminal te cambian el día a día.


🐚 zsh — instalar y cambiar la shell por defecto

zsh viene en los repos de Debian, instalación directa:

sudo apt install -y zsh

Cambiamos la shell por defecto para nuestro usuario:

chsh -s $(which zsh)

Nota: El cambio de shell tiene efecto en la próxima sesión, no en la terminal actual. Cierra sesión y vuelve a entrar.

Al abrir la terminal por primera vez con zsh aparece el asistente de configuración inicial. Puedes seguirlo o simplemente pulsar q para salir — oh-my-zsh lo sustituirá en el siguiente paso.


🚀 oh-my-zsh

oh-my-zsh es el framework de configuración de zsh más extendido. Gestiona plugins, temas y mantiene todo organizado en ~/.oh-my-zsh/.

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

El instalador crea ~/.zshrc con una configuración base. A partir de aquí tocamos ese fichero para activar plugins y el tema.

Plugins esenciales

Instalamos dos plugins externos que no vienen con oh-my-zsh:

# Sugerencias basadas en el historial — escribe y aparece la continuación en gris
git clone https://github.com/zsh-users/zsh-autosuggestions \
  ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

# Colorea la sintaxis mientras escribes — rojo si el comando no existe, verde si sí
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git \
  ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

Abrimos ~/.zshrc y buscamos la línea de plugins para activarlos:

nano ~/.zshrc
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

Nota: El orden importa — zsh-syntax-highlighting tiene que ir el último.


🎨 powerlevel10k — el tema que lo cambia todo

powerlevel10k es el tema más usado en zsh y por algo es. Rápido, configurable y con información útil en el prompt sin que pese.

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git \
  ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k

En ~/.zshrc cambiamos el tema:

ZSH_THEME="powerlevel10k/powerlevel10k"

Recargamos la configuración:

source ~/.zshrc

Al hacerlo arranca el asistente de configuración visual de p10k. Pregunta paso a paso qué información quieres ver, cómo de separados los elementos, si prefieres el prompt en una línea o dos, etc. En unos dos minutos tienes el prompt a tu gusto.

Si en algún momento quieres volver a configurarlo:

p10k configure

La configuración queda en ~/.p10k.zsh.


🖥️ tmux — sesiones y paneles

tmux es un multiplexor de terminal: permite tener varias sesiones, ventanas y paneles en una sola terminal, y lo mejor de todo, que esas sesiones sobrevivan aunque cierres la ventana o pierdas la conexión SSH.

Instalación

sudo apt install -y tmux

Conceptos básicos

Antes de entrar en configuración conviene tener claro cómo funciona:

Concepto Qué es
Sesión Un entorno tmux independiente. Puedes tener varias y desconectarte sin perderlas.
Ventana Como una pestaña dentro de una sesión.
Panel División de una ventana — horizontal o vertical.
Prefijo La combinación de teclas que activa los comandos de tmux. Por defecto Ctrl+B.

Comandos básicos de terminal:

tmux                      # nueva sesión
tmux new -s trabajo       # nueva sesión con nombre
tmux ls                   # listar sesiones activas
tmux attach -t trabajo    # volver a una sesión
tmux kill-session -t trabajo

Configuración — hacerlo más cómodo

La configuración por defecto de tmux es funcional pero mejorable. Creamos ~/.tmux.conf:

nano ~/.tmux.conf
# Cambiar el prefijo de Ctrl+B a Ctrl+A — más cómodo y parecido a screen
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix

# Splits con teclas más intuitivas
bind | split-window -h -c "#{pane_current_path}"   # | → panel vertical
bind - split-window -v -c "#{pane_current_path}"   # - → panel horizontal
unbind '"'
unbind %

# Navegar entre paneles con Alt+flechas (sin prefijo)
bind -n M-Left  select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up    select-pane -U
bind -n M-Down  select-pane -D

# Recargar configuración sin reiniciar tmux
bind r source-file ~/.tmux.conf \; display "Configuración recargada"

# Ratón — seleccionar paneles y redimensionar arrastrando
set -g mouse on

# Aumentar el historial de scroll
set -g history-limit 10000

# Numeración de ventanas desde 1 (más intuitivo con el teclado)
set -g base-index 1
setw -g pane-base-index 1

# Colores — terminal con 256 colores
set -g default-terminal "screen-256color"

# Barra de estado — información útil
set -g status-right '#[fg=colour233,bg=colour241] %d/%m #[fg=colour233,bg=colour245] %H:%M '
set -g status-right-length 50

Aplicar sin reiniciar tmux:

tmux source ~/.tmux.conf

Referencia rápida de atajos

Con la configuración anterior los atajos más usados quedan así:

Acción Atajo
Nuevo panel vertical Ctrl+A luego |
Nuevo panel horizontal Ctrl+A luego -
Navegar entre paneles Alt+flechas
Nueva ventana Ctrl+A luego c
Cambiar de ventana Ctrl+A luego número
Desconectarse (sesión sigue viva) Ctrl+A luego d
Volver a la sesión tmux attach
Recargar configuración Ctrl+A luego r

📦 Llevar tu configuración a otra máquina en un minuto

Una vez que tienes el entorno a tu gusto, copiarlo a otro equipo es inmediato:

# Desde la máquina origen — copiar la configuración completa
scp ~/.zshrc      usuario@nuevo-equipo:~/.zshrc
scp ~/.p10k.zsh   usuario@nuevo-equipo:~/.p10k.zsh
scp ~/.tmux.conf  usuario@nuevo-equipo:~/.tmux.conf
scp ~/.zsh_history usuario@nuevo-equipo:~/.zsh_history

En el equipo destino, después de instalar zsh, oh-my-zsh, powerlevel10k y tmux, con esos cuatro ficheros tienes exactamente el mismo entorno: mismo prompt, mismo historial, mismos aliases y misma configuración de tmux.

Nota: Los plugins externos (autosuggestions y syntax-highlighting) hay que clonarlos igualmente en el equipo destino — los ficheros de configuración los referencian pero no los incluyen.


✅ Resultado

Con esto tienes:

  • zsh como shell por defecto con completado inteligente
  • oh-my-zsh gestionando plugins y tema
  • Autosuggestions — el historial sugiere mientras escribes
  • Syntax highlighting — sabes si el comando existe antes de ejecutarlo
  • powerlevel10k — prompt con la información que necesitas, rápido
  • tmux — sesiones que sobreviven al cierre de la terminal, paneles para trabajar en paralelo y configuración adaptada

Todo transportable a cualquier máquina en un minuto.