Saltar al contenido principal

Divide y vencerás: Cómo tmux cambió mi forma de trabajar en la terminal

· 4 min de lectura
Pablo Acosta Cuestas
Fullstack en Python

Comencemos explicando... ¿Qué es? Bueno, es un multiplexor de terminal, pero... ¿Qué significa multiplexor? Significa que tiene la capacidad de dividir la pantalla de la terminal, tanto en vertical como en horizontal, en sectores o paneles más pequeños. Además te permite que procesos que se ejecutan en la terminal, lo hagan en segundo plano.

¿Cómo llego a esta herramienta? Mi experiencia con Tmux

Debido a que trabajaba con una HP 520, con 4Gb de RAM, 265Gb SSD y un Intel Celeron M 520 de 1.60GHz, programas como VSC, no podía ejecutarlos con agilidad, por ello, empecé a trabajar con NeoVim, particularmente con LazyVim, que se ejecuta en la terminal, pero el tener que otros programas en la terminal, me hace necesario tener que abrir múltiples pestañas, pero en ese contexto un amigo me sugirió usar tmux, lo cual, al recién estar iniciándome con Linux, se me hacía complicado.

Pero en poco tiempo le agarrás la mano, se vuelve vital para un funcionamiento óptimo con la terminal y te ahorra bastante tiempo al no depender del uso del mouse.

Actualmente lo utilizo tanto en mi nueva notebook como en mi pc de escritorio, independientemente de la terminal, ya que en Ghostty para Linux tiene la función de multiplexor, al igual que PowerShell en Windows, pero creo que tmux no sólo es superior, sino que también es más cómodo, permitiéndote "portear" tu manera de trabajar en la terminal de un SO a otro y de una terminal a otra. Yo particularmente lo recomiendo.

¡Empieza a usarlo!

No podemos iniciar sin haberla instalado, por ello, primero ejecutaremos el siguiente comando:

bash
sudo apt install tmux
Atención

Tenga en cuenta que la instalación fue hecha en un Linux Mint, cuya paquetería es apt y para usarlo en Windows utilicé WSL con Ubuntu 24.04 cuya paquetería también es apt, por lo que si usas una distro diferente que no provenga de Debian, la manera de instalarlo será diferente.

Y para poder empezar a usarla lo que deberemos hacer es lo siguiente:

bash
# 1er inicio => Si no los has usado antes o si NO has dejado una sesión abierta.
tmux

# Continuar sesión
tmux attach

Comando necesarios

Prefix
Atajo
Acción
Ctrl + b?Ayuda: Abrir la pantalla con todos los comandos.
Ctrl + bdDetach: Desacoplar sesión (queda en segundo plano).
Ctrl + b"Dividir pantalla en horizontal.
Ctrl + b%Dividir pantalla en vertical.
Ctrl + b Moverse entre paneles.
Ctrl + bzZoom: Pantalla completa del panel (repetir para volver).
Ctrl + bAlt +  Redimensionar el panel actual.
Ctrl + bEspacioCambiar entre diseños (layouts) predefinidos.
Ctrl + bxCerrar el panel actual.
Ctrl + b&Cerrar la ventana completa.

Otro comando importante pero fuera de tmux es el siguiente:

bash
tmux ls

El cual nos permite ver las diferentes sesiones activas.

Tenga en cuenta que hay un montón de comandos más pero es lo mínimo necesario para arrancar, además con sólo esto ya notará una gran diferencia con su manera de usar la terminal, previo al uso de esta herramienta.

LazyVim: Diferencias entre Windows y Linux

· 3 min de lectura
Pablo Acosta Cuestas
Fullstack en Python

Como ya habrás notado en mi página, algo que es de mi total interés es LazyVim, pero específicamente... ¿Qué es? Bueno es un framework de NeoVim. Bien... ¿Pero qué es un framework? Bueno... Es un conjunto de configuraciones y plugins pre-seleccionados que se instalan sobre Neovim para transformarlo en algo parecido a un IDE moderno.

Originalmente lo aprendí a usar por necesidad, pero posteriormente me gustó y mantuve su uso. Razón por la cual, decidí que quería usarlo en mi PC de escritorio cuyo sistema operativo es Windows. Su instalación, aunque distinta, no es dificil, hasta te diría que es un poco mas sencilla. Aclaración importante: La instalación no la hice a traves de WSL, sino que la llevé a cabo 100% dentro de Windows.

Luego de finalizado el proceso, quise abrir los proyectos alojados dentro de WSL y aquí 'pasaron cosas'. Cada ruta a cada proyecto de WSL daba error, lo primero que pensé fue que había cometido errores en la instalación. Pero volviendo hacia atras en los comandos que había ejecutado, no los encontraba.

Entonces intento ejecutar un proyecto que tenía en una carpeta de Windows, para mi sorpresa, funciona espectacular. Intento hacer lo mismo, pero desde WSL y con unas leves modificaciones al comando, y también funciona. A continuación pueden ver las diferencias en lo comandos.

bash
nvim.exe "[RUTA]"
PowerShell
nvim "[RUTA]"

Lo que me lleva a pensar que hay problemas con las rutas de las carpetas que le estoy dando, tanto a PowerShell, como a WSL. Pero luego de ver que hay problemas en la interoperatividad entre ambos sistemas, decido instalar LazyVim, dentro de WSL.

El proceso fue sencillo, como 'sudo apt install neovim' me da la versión 0.9.5, escribí lo siguiente:

bash
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz
sudo rm -rf /opt/nvim-linux-x86_64
sudo tar -C /opt -xzf nvim-linux-x86_64.tar.gz

Posteriormente seguí la guía de instalación de LazyVim para Linux que puedes ver en la parte de la documentación, logrando que funcione con normalidad todos mis proyectos de WSL.

Más allá de que todo ahora funciona de buena manera, me queda una sensación de incompletitud. Sensación que, en el futuro próximo no voy a atender, pero si me gustaría lograr que si instalo una herramienta en un entorno, en este caso LazyVim, funcione para ambos sistemas y que no tenga que hacer dos veces el mismo proceso.

No obstante, si vos sabes algo al respecto y puedes ayudarme, te invito a que me dejes tu sugerencia en los comentarios. Y con todo esto dicho, me despido... ¡Hasta luego!

Mi frustración con Linux Mint Xfce

· 4 min de lectura
Pablo Acosta Cuestas
Fullstack en Python

Empezaré comentando que no soy un experto en linux. Pero yo elegí a Linux Mint como mi primera distro, particularmente a su versión Xfce, pero no pude instalarla. Para ser mas exáctos si pude, pero se reiniciaba solo después de aproximadamente 2 minutos o menos, un verdadero infierno. Intenté reinstalar, pero no podía completar la instalación, luego probé con otras distros, como Zorin OS Lite o Lubuntu, pero mismo fallo. Probé con otros pendrives, con otras apps para flashear la imágen, pero nada cambiaba, era frustrante.

¿Por qué persistir?

En parte por que lo quería, en parte porque lo necesitaba, ya que tengo una HP 520 del 2008, con un Intel Celeron M 520 de 1.60GHz con un núcleo, 4Gb de RAM DDR2, un SSD 256Gb y Windows 7. Necesitaba que la computadora fuera funcional para que yo pudiera trabajar. Pero no me rendí y logré instalar Linux Mint, pero en su versión Mate, la compu era funcional y me sirvió para trabajar, pero yo no estaba conforme.

Con el tiempo pude comprarme un nuevo equipo, una Lenovo T470s usada, con 256Gb nVME, 16Gb de RAM y un i5 de 7ma generación, a la cual le instalé Linux Mint, pero en su versión Cinnamon. En comparación, una bestia y aún así, yo no seguía conforme.

Luego mi pareja me pidió que intentase arreglar su computadora, ya que los 3 técnicos que la vieron, llegaron al mismo resultado, se había quemado la placa en un subidon de tensión, pero a mi ese diagnóstico no me convencía. No especificaban cual placa y la pc andaba bien con Windows 10, simplemente era muy lenta. Yo me propuse arreglarla y ustedes se preguntarán qué conocimientos tenía en la materia para contradecir 3 "profecionales". La respuesta es sencilla y corta. Ninguno.

No obstante cuando la abrí dí con el que para mi era el problema, una notebook del 2016, con dicho sistema operativo en un HDD de 1Tb, para mi el chiste se contaba sólo. Solo quedaba una cosa por hacer, cambiar el HDD de 1Tb por un SSD de 128Gb que tenía. Estaba ante mi la revancha, mi posibilidad de instalar esta vez Linux Mint Xfce, este era un equipo mas nuevo, es una Lenovo Ideapad 320-15IAP, con un Intel Celeron N3350 (2 núcleos, con frecuencia de hasta 2.40 GHz), 4Gb de RAM DDR3 y el ya mencionado SSD de 128Gb, nada podía salir mal. Pero no pude, nuevamente los fallos del pasado se hacían presente. No me rendí, aunque no pude instalar ningún sistema operativo.

¿Mi solución? Cambiar de disco, yo en la HP que ya no usaba, tenía un Linux Mint Mate instalado, por lo que hice el cambio y la notebook andaba bárbaro. Obviamente necesitaba hacer algunas configuraciones, por ejemplo tenía problemas con el audio y algunas otras cuestiones menores y pese a que ya había resucitado dos equipos con Linux, no era suficiente. Aún no podía instalar la distro que yo quería.

Por lo que me propuse lo siguiente. Ahora tenía un SSD de 128Gb libre que iba a instalar en mi antigua notebook HP, con un solo objetivo: instalar Linux Mint Xfce o en su defecto alguna distro con éste escritorio.

Pero no pude, luego de intentar instalar dicho sistema de otras maneras, seguía fallando y me gustaría decir que esta historia tiene un final feliz pero la realidad es que al día de la publicación de este blog aún sigo sin poder lograr mi objetivo. ¿Dejaré de intentarlo? Por supuesto que no, yo quiero lograrlo y no importan las veces que fracase en el proceso, aprendí mucho en el camino y quizás aún me falte aprender, pero valoro lo que conseguí y no me quedo con ello, quiero más. Es por ello que mi proximo intento es Manjaro Linux, una distro basada en Arch Linux.

¿Es esta la solución? No lo sé, posiblemente no. Pero lo voy a seguir intentando, aunque me tenga que dar la cabeza contra la pared 1000 veces, yo lo conseguiré. Ya sea aprendiendo a saltar la pared o tumbandola a cabezasos.

En fin... Hasta acá llego hoy, espero que en mi proximo blog les comente cómo conseguí mi objetivo o bien cuán frustrado estoy y cuales son mis planes futuros. Yo los saludo, mi nombre es Pablo y hasta luego!