21 puntos por GN⁺ 15 일 전 | 1 comentarios | Compartir por WhatsApp
  • A través del archivo de configuración ~/.tmux.conf se pueden ajustar libremente los atajos de teclado, los colores, la barra de estado y el comportamiento del mouse
  • Se puede cambiar la tecla Prefix predeterminada C-b por C-a y reasignar Caps Lock a Ctrl para mejorar la eficiencia al escribir
  • En lugar de " y %, la división de ventanas puede hacerse de forma más intuitiva con las teclas | y -, y con la tecla r se puede recargar el archivo de configuración al instante
  • Se mejora la comodidad de uso con Alt + teclas de dirección para cambiar de panel, activación del modo mouse y desactivación del cambio automático del nombre de la ventana
  • Es posible personalizar con detalle elementos visuales como colores, barra de estado, mensajes y bordes para crear un tema coherente

Conceptos básicos de la personalización de tmux

  • El archivo de configuración de tmux es tmux.conf, y si se coloca en ~/.tmux.conf dentro del directorio personal del usuario, se aplica como configuración personal
    • Si se quiere compartir entre varios usuarios, puede colocarse en un directorio global del sistema, y la ubicación varía según el sistema operativo
    • La ubicación exacta puede verificarse en la explicación de la opción -f en man tmux
  • Al editar el archivo de configuración se pueden cambiar libremente los atajos de teclado, los colores, la barra de estado, el comportamiento del mouse y más

Una tecla Prefix menos incómoda

  • La tecla Prefix predeterminada C-b puede cambiarse a C-a, que es más fácil de alcanzar
    • C-a puede entrar en conflicto con el comando de bash para “ir al inicio de la línea”
    • Si se reasigna la tecla Caps Lock a Ctrl, resulta más fácil introducir combinaciones con Prefix
  • Un ejemplo de configuración es el siguiente
    unbind C-b
    set-option -g prefix C-a
    bind-key C-a send-prefix
    
  • Con C-a C-a todavía se puede usar el comando original de bash

Comandos de división de ventanas más intuitivos

  • En lugar de las teclas de división predeterminadas " y %, se usan | y -, que son más intuitivas visualmente
    • | se configura para división horizontal, y - para división vertical
    • Se desactivan los atajos anteriores
    bind | split-window -h
    bind - split-window -v
    unbind '"'
    unbind %
    

Recarga rápida del archivo de configuración

  • Si se modifica tmux.conf con frecuencia, se puede recargar al instante con un atajo
    • Se vincula la tecla r al comando para volver a aplicar el archivo de configuración
    bind r source-file ~/.tmux.conf
    

Cambio rápido entre paneles

  • Se puede mover entre paneles con la tecla Alt (Meta) + flechas sin usar Prefix
    • Alt-Left, Alt-Right, Alt-Up y Alt-Down permiten moverse en cada dirección
    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
    

Activación del modo mouse

  • Se puede seleccionar ventanas y ajustar el tamaño de los paneles con el mouse
    • Aunque el uso centrado en teclado es lo habitual, resulta útil en trabajo colaborativo
    • Puede aprovecharse con frecuencia en pair programming
    set -g mouse on
    

Desactivar el cambio automático del nombre de la ventana

  • Evita que el nombre de la ventana definido manualmente sea sobrescrito automáticamente al ejecutar comandos
    set-option -g allow-rename off
    

Cambiar la apariencia de tmux

  • Se pueden ajustar con detalle los colores, la barra de estado, los mensajes, los bordes de los paneles y más
    • Al consultar la sección STYLES, se pueden configurar diversos elementos visuales
    • Si se usan los colores predeterminados del terminal (red, yellow, black, etc.), el tema se integra de forma natural
    • Si se usa el modo de 256 colores, se pueden especificar colour0~colour256
  • La configuración de ejemplo incluye los siguientes elementos
    • Desactivar la alerta sonora**,** color del reloj en yellow**,** estilo del modo de copia fg=black bg=red bold

    • Color del borde de panel en red**,** borde del panel activo en yellow

    • Posición de la barra de estado en bottom**,** espacio en blanco a la izquierda**,** hora mostrada a la derecha

    • Estilo de la ventana actual fg=black bg=red, estilo de las ventanas normales fg=red bg=black

      • Estilo de mensajes fg=yellow bg=red bold
      • Con esta configuración se ofrece una combinación de colores coherente y una separación visual clara

Material adicional de referencia

  • Se pueden revisar distintos ejemplos de configuración de tmux en repositorios de GitHub como tmux.conf o dotfiles
    • También sirven de referencia /r/dotfiles y /r/unixporn en Reddit
  • La configuración completa está publicada en el repositorio de dotfiles de GitHub
  • Para profundizar, se recomienda consultar la página man de tmux y la sección Configuring tmux del wiki de tmux
    • Ahí se cubren tanto las funciones más recientes como las opciones detalladas
  • Si se quiere diseñar directamente un tema de colores para terminal, se puede usar Root Loops(https://rootloops.sh/)
    • Ofrece soporte para crear una combinación de colores de terminal personalizada

1 comentarios

 
GN⁺ 15 일 전
Comentarios en Hacker News
  • Antes usaba tmux, pero desde que descubrí Zellij me cambié por completo
    La configuración de pestañas y paneles es mucho más intuitiva, y con el mouse es fácil desplazarse y seleccionar texto, así que copiar y pegar resulta sencillo

    • Viendo la página de descargas de Zellij, pensé que ojalá no usaran botones para los enlaces
      Los enlaces tipo botón no permiten copiar con clic derecho y tampoco son buenos en términos de accesibilidad
    • El único defecto fatal de Zellij es que no se puede copiar/pegar desde la pantalla con el teclado, y no soporta múltiples búferes de portapapeles
      En tmux uso esa función cada 1 o 2 minutos, pero los desarrolladores de Zellij dicen que pases los datos al editor por pipe, lo cual no es compatible con el portapapeles del sistema
      Por eso al final volví a tmux
    • Desde la perspectiva de quien usa equipos embebidos, Zellij es demasiado grande
      Zellij pesa unos 50MB, mientras que tmux ronda los 2MB incluso con librerías de dependencia, así que la diferencia de tamaño es grande
    • En las últimas dos semanas probé zmx, y aunque tiene algunos bugs de repintado de pantalla, con ghostty se siente bastante cómodo
    • Yo también me fui a Zellij y luego regresé a tmux
      Zellij se fue hinchando cada vez más y se volvió incómodo; ahora organizo sesiones con tmuxp y mantengo la conexión con autossh, y estoy mucho más satisfecho
  • Hablando de combinaciones de teclas, ^a es la tradición de screen y ^b la de tmux
    Si administras varios sistemas, es importante aprender el mapa de teclas por defecto
    En mi configuración personal solo cambié colores, fondo del panel activo, reloj con marca de tiempo y activar el mouse; dejé intactas las combinaciones de teclas
    Una vez que te acostumbras, los valores por defecto son más cómodos

  • Dejé tmux y me pasé a Zellij porque Shift+Enter no funcionaba
    Pero como Zellij me tiraba los procesos por un crash tipo panic, al final volví a tmux
    La solución fue "bind-key -T root S-Enter send-keys C-j", y la encontré en este issue

    • Yo lo resolví con "bind -n S-Enter send-keys Escape '[13;2u'"
      pi.dev advierte que no hay configuración de extended-keys, pero igual funciona bien
    • Gracias a eso encontré la solución que estaba buscando
    • Me pregunto si es posible que el multiplexer muera pero los procesos hijo sigan vivos
      En tmux, si matas el servidor, también se limpian los procesos subordinados, y eso era conveniente
    • En mi caso Shift+Enter no funciona, pero Option+Enter sí inserta una nueva línea (entorno MacOS, Claude Code)
    • Si quieres evitar una nueva combinación, también se puede con \\ + Enter
  • Conocer el Control Mode de tmux fue un antes y un después
    Si ejecutas tmux -CC en iTerm2, las pestañas, el scroll, copiar/pegar y los atajos funcionan de forma nativa del terminal
    Visualmente también se ven todas las pestañas, y eso es especialmente útil para principiantes

    • Uso Mac por esta función. En 10 años no he visto ningún terminal de Linux que implemente esto
    • A mí también me funciona perfectamente el modo -CC
    • Me pregunto si también funciona en ghostty
    • Ahora por fin entendí qué hace -CC
    • Es para quedarse boquiabierto
  • En tmux uso Alt+número para cambiar de ventana rápidamente
    Ejemplo: lo configuro como bind-key -n M-1 select-window -t :1
    También se puede abrir el modo de copia estilo vi con Alt-/
    En Wayland puedes usar wl-copy para copiar con arrastre del mouse o con la tecla y
    También agregué un diseño estilo Powerline, pero hace falta powerline-fonts

  • Personalicé tanto tmux que cuando entro por ssh a un servidor nuevo se me olvida cómo usarlo por defecto
    Ahora lo uso con la configuración base. Eso sí, siempre tengo que cambiar la configuración del scroll con el mouse

    • Preguntan si manejas configuraciones de tmux, zsh, etc. con un repositorio de dotfiles
    • Esto se parece a la maldición de Emacs. Se puede personalizar infinitamente, pero al final terminas con un entorno único solo para ti
      Un concepto relacionado es The Lisp Curse
    • Yo tuve el mismo problema, pero lo resolví agregando solo configuraciones que no entren en conflicto en vez de sobrescribir las predeterminadas
      Por ejemplo, dejé Ctrl-b tal como está y añadí Ctrl-space como atajo adicional
    • También me pasó lo mismo con Emacs. Después de perder mis ajustes personalizados por un fallo de disco, volví a un estado casi predeterminado
    • Hasta salen bromas como “Claude, pásame por scp mi configuración de tmux a ese servidor”
  • Me impresionó el Control Mode de tmux en iTerm2
    Puedes controlar ventanas de terminal remotas desde el gestor de ventanas local
    Tengo expectativas porque en ghostty también están implementando esa función

  • Mucha gente dice que la tecla de prefijo predeterminada de tmux (C-b) es incómoda, pero yo creo que justamente esa incomodidad es una ventaja
    Es muy difícil presionarla por accidente
    A mí también me parecen intuitivos los comandos de división: % se siente como una línea horizontal y " como una vertical
    Solo recargaba la configuración con frecuencia al principio; ahora casi nunca lo hago

    • A mí también me gusta la tecla de prefijo predeterminada
      Si hace falta, puedes agregar esto a .tmux.conf
      unbind-key -T prefix C-b
      set-option -g prefix C-s
      
      y listo. Si solo lo usas en local, ni siquiera tienes que preocuparte por conflictos
  • Me encanta tmux, pero la trampa es que parece necesitar un archivo de configuración de 400 líneas
    Tal como viene de fábrica no es nada amigable, pero si le metes mano bastante, se vuelve excelente
    Puedes tomar como referencia mi archivo de configuración

    • Yo no cambié ninguna configuración y aun así me parece bastante usable
      Solo memoricé unas 9 teclas que necesitaba
    • Dejé mi archivo de configuración disponible para bajarlo fácilmente con wget o curl desde cualquier lado
      También pienso agregar una versión para PowerShell
    • Yo tomé como referencia la configuración de jcs y solo copié unas cuantas líneas
      Nada más revertí la combinación de prefijo a la original
  • Hace tiempo leí durante un fin de semana el libro “tmux 2: mouse-free productivity”, y fue uno de los libros que más impacto tuvo en mi productividad
    La edición más reciente sigue actualizándose → tmux 3: productive mouse-free development

    • Eso sí, me dio pena que en el libro no se mencionara al autor original ni el origen de tmux
    • Gracias por recomendar una buena referencia