4 puntos por GN⁺ 2024-08-13 | 1 comentarios | Compartir por WhatsApp

Experiencia usando WezTerm

Antes de empezar

  • Es necesario instalar WezTerm
  • Los usuarios de macOS pueden instalarlo con Homebrew ($ brew install wezterm)

Explicación sobre Lua

  • La configuración de WezTerm se define con Lua
  • Lua es similar a otros lenguajes de programación dinámicos, por lo que es fácil de leer
  • Para configuraciones complejas, conviene aprender Lua más a fondo

Archivo de configuración y bucle de retroalimentación

  • El archivo de configuración se encuentra en $XDG_CONFIG_HOME/wezterm/wezterm.lua
  • Al cambiar el archivo de configuración, se recarga automáticamente
  • Se pueden revisar los logs con la superposición de depuración (CTRL + SHIFT + L)

Configuración de apariencia

Tema de colores

  • WezTerm ofrece más de 1,000 temas de colores
  • Ejemplo: config.color_scheme = 'Tokyo Night'

Tema de colores dinámico

  • Se proporciona código de ejemplo para cambiar aleatoriamente el tema de colores cada vez que se abre una nueva ventana

Respetar la apariencia del sistema

  • El tema de colores cambia automáticamente según el modo de apariencia del sistema
  • Se configura creando el archivo appearance.lua

Configuración de fuente

  • La fuente predeterminada es JetBrains Mono
  • Ejemplo: config.font = wezterm.font({ family = 'Berkeley Mono' })

Estilo de ventana

  • Configuración de transparencia del fondo y desenfoque de la ventana
  • Ejemplo: config.window_background_opacity = 0.9

Configuración de la barra de estado

  • Agrega una barra de estado estilo powerline al lado derecho de la barra de pestañas
  • Usa la API de eventos de WezTerm

Configuración de teclas

Asignaciones de teclas predeterminadas

  • Se pueden mantener o desactivar las asignaciones predeterminadas (config.disable_default_key_bindings = true)

Ejemplos de asignación de teclas

  • Asigna Option + Left Arrow y Option + Right Arrow para moverse entre palabras
  • Configura un atajo para abrir el archivo de configuración (CMD + ,)

Función de multiplexación

  • Usa la función de multiplexación de WezTerm
  • Configura un atajo para dividir ventanas (CTRL + SHIFT + P)

Configuración de tecla líder

  • Configura la tecla líder como CTRL + A
  • Usa el atajo de división de ventanas junto con la tecla líder

Moverse entre paneles

  • Configura asignaciones de teclas para moverse entre paneles (usando las teclas de dirección de vim)

Ajustar el tamaño de los paneles

  • Configura una tabla de teclas para ajustar el tamaño de los paneles
  • Se usa junto con la tecla líder para redimensionar paneles

Espacios de trabajo de proyectos

Crear y cambiar espacios de trabajo

  • Crea el archivo projects.lua y agrega una función para cambiar de proyecto
  • Al seleccionar un proyecto, se crea un nuevo espacio de trabajo de WezTerm

Resumen de GN⁺

  • WezTerm permite una configuración flexible con Lua, lo que habilita una gran variedad de personalizaciones
  • Gracias a la recarga automática y la superposición de depuración, es fácil ajustar la configuración
  • Sus funciones de multiplexación y gestión de espacios de trabajo son sobresalientes, y las distintas asignaciones de teclas pueden mejorar la productividad
  • Terminales con funciones similares incluyen Alacritty y kitty

1 comentarios

 
GN⁺ 2024-08-13
Opiniones en Hacker News
  • Me cambié recientemente a WezTerm y estoy muy satisfecho. Antes usaba kitty, y me gustaban la configuración y la simplicidad de iTerm2. WezTerm ofrece de entrada muchas más funciones. La configuración del terminal es tan corta que cabe completa en la pantalla del editor. Desde entonces ya no he tenido que preocuparme por el terminal

    • Con kitty tenía problemas con frecuencia, e intenté reproducir funciones de iTerm2, pero me desilusionaron los comentarios secos y despectivos del mantenedor de kitty
    • Por ejemplo, a la pregunta "¿cómo configuro tmux en kitty?" le respondieron "no lo hagas, tmux es tonto". Al final me rendí
  • WezTerm responde muy rápido a los issues de GitHub y normalmente resuelve los problemas en uno o dos días. Salvo un pequeño problema con las teclas modifier a través de SSH, la funcionalidad es casi perfecta. Es rápido y está muy bien

    • Antes era un fanático de Alacritty, pero necesitaba mejor soporte para modifier para usar emacs remoto
  • Al cambiar de Kubuntu a Ubuntu, extrañaba algunas funciones de Konsole (scrollback infinito, búsqueda en el scrollback), pero instalé WezTerm para evitar instalar Konsole. WezTerm me gustó de inmediato, aunque muchas funciones no son fáciles de descubrir. La documentación es muy buena y el autor participa mucho y ayuda bastante

    • Por ejemplo, encontré cómo seleccionar bloques grandes de texto usando solo el teclado e incluso lo probé una vez, pero se me olvidó muy rápido y volví a seleccionar texto con el mouse. Es más rápido que volver a buscar la página en la documentación
    • Por cierto, la página que estaba buscando era https://wezfurlong.org/wezterm/copymode.html
  • Probé Mac Terminal, iTerm2, Kitty, Warp y otros, pero me quedé con WezTerm. Es fácil de configurar, rápido y se ve bien. Incluso hice un tema

  • ¿Cuál es la ventaja de WezTerm? Que es totalmente cross-platform, así que puedo usarlo en Linux, macOS y Windows. Comparto la configuración del terminal entre varios sistemas operativos

  • Llevo usando WezTerm alrededor de un año y además apoyo a Wez en GitHub. WezTerm es un terminal excelente y el desarrollador también lo es. Uso mucho la copia rápida y otros modos de copia

    • En una laptop con macOS uso algo parecido a mosh+tmux para conectarme a una máquina Linux de trabajo. Siempre mantengo la sesión corriendo, así que puedo trabajar en la máquina desde la Mac. Ofrece sesiones reconectables, paneles y pestañas
  • La razón por la que sigo usando iTerm2 es la función "Edit->Selection Respects Soft Boundaries". Esa función interpreta el carácter de tubería | como separador de paneles, así que la selección se ajusta en consecuencia

  • Coincido con la opinión de otros usuarios. Llevo casi 10 años usando macOS y durante todo ese tiempo he usado iTerm2. Últimamente empezó a volverse lento. Al hacer cmd-tab tenía que esperar más de 1 segundo para que apareciera el terminal

    • Evalué varias alternativas, pero no me gustaron. Un terminal requería cuenta/login y otro estaba escrito en {Java,Type}Script, y hasta los comandos simples se rompían por problemas con streams asíncronos
    • WezTerm es muy rápido, configurable y además incluye por defecto el tema OneDark (base16)
    • En la configuración inicial tuve que agregar cmd-left y cmd-right al archivo de configuración lua
  • Wez va a publicar un libro sobre programación de sistemas con Rust

  • OT: lo que más espero es Ghostty, creado por el fundador de HashiCorp