El atareao atareao  

Un prompt para gobernarlos a todos Linux, MacOS y Windows

Hace algunos meses que publiqué en el canal de Youtube sobre como personalizar el prompt de la terminal, utilizando Zsh, Oh-My-Zsh y un tema como es PowerLevel10k. Por aquel entonces estaba realmente satisfecho con la personalización que me proporcionaba el tema PowerLevel10k, porque con solo mirar el prompt en el directorio que me encontrara, era capaz de obtener una gran cantidad de información, sin necesidad de pulsar una tecla. No solo esto, sino que además quedaba realmente resultón. Realmente estaba muy satisfecho con el resultado obtenido. Sin embargo, y a la vez, por aquel entonces también probé, starship, el promp definitivo (al menos por ahora) que viene a sustituir el tema que he estado utilizando hata el momento.

un prompt para gobernarlos a todos

Un prompt espectacular, potente, mega configurable y ultra rápido para Linux, MacOS y Windows

¿Porque cambio el prompt?

Si como antes te he dicho, estaba tan satisfecho con PowerLevel10k, ¿porque cambio el prompt? Por aquel entonces, ya había probado starship, ¿que es lo que me ha llevado a realizar el cambio?

Pues tengo que decirte que han sido varias puntillitas las que han precipitado el cambio. Por un lado, si bien, lo había probado, he incluso puedes encontrar un vídeo mostrando su funcionamiento, así como realizando una configuración básica, lo cierto, es que no quedaba tan espectacular como PowerLevel10k. No solo hace falta que se muestre la información, también es necesario que se vea bonito.

Por otro lado, en el [grupo de Telegram]() ya se ha mencionado en alguna que otra ocasión, sobre este espectacular prompt multiplataforma y multi shell. Y para dar la puntilla final, en la Zona Malandriner de [WebReactiva](), del amigo Daniel Primo, también se trajo este prompt.

Todos estos antecedentes me han llevado a dos cuestiones,

  • Buscar un tema que se vea bonito. Un tema, que cuando veas mi terminal, no puedas resitirte y me tengas que preguntar necesariamente ¿que tema estás utilizando que se ve espectacular?. Pero también teniendo en cuenta que no quiero dedicarle excesivo tiempo. Así que es necesario copiar parte de la información de otro tema ya pre existente.
  • Configurar y personalizar starship para que me de la máxima información adaptándolo exactamente a mis necesidades. Para esto, tengo que configurar, exactamente la información para los lenguajes de programación y entornos que necesito. Quiero ser bastante escrupuloso con este tema. No quiero configurar todos, solo los que neceito.

¿Que me da starship que no me da PowerLevel10k?

Una de las grandes ventajas con las que me he encontrado al instalar PowerLevel10k es su asistente de configuración. Este asistente te va acompañando paso a paso hasta completar y dejar tu prompt perfectamente configurado. Sin embargo, no me he atrevido a mirar las tripas de este tema, para adaptarlo a mis necesidades. A lo mejor, si me hubiera atrevido ahora no te estaría hablando de starship.

Sin embargo, cuando vi el archivo de configuración de starship, y sobre todo, cuando comprendí lo sencillo y fácil que era de configurar, realmente entendí todo su potencial. Y es que es realmente sencillo de configurar y adaptar a tus necesidades.

starship está fundamentado en tres principios básicos,

  • Compatibilidad primero. Se trata de un prompt que está pensado para que funcione en la mayoría de los shell mas habituales en los sistemas operativos principales.
  • Personalizable. Cada detalle de tu prompt será totalmente personalizable, lo que te permitirá llevar tu prompt al minimalismo mas absoluto, o a tener tanta información como necesites. Depende única y exclusivamente de ti.
  • Rust. Una de las grandes ventajas de este prompt, es que está implementado en Rust. Esto por un lado te ofrece velocidad y por el otro seguridad. ¿Que mas puedes pedir?.

En este sentido, no me tengo que preocupar de configurar el prompt para Bash, Zsh, Fish o incluso Powershell, por citarte alguna de las que soporta. Y no solo esto, si no que además no me tengo que preocupar si estoy trabajando en Windows, MacOS o Linux. Con cualquiera de ellos funciona y funciona con la misma configuración. Y esto es lo que realmente me importa. Una única configuración para todos los sistemas operativos y shell.

Esto último cada vez cobra mas sentido para mi. En las últimas semanas que he iniciado la migración hacia Wayland en general y sway en particular. Me he dado cuenta que mis archivos de configuración, debían ser mas generales. Debían apoyarse en sistemas y herramientas que pudieran funcionar con independecia de si estoy en una u otra distribución, en una u otra shell, o que utilice un protocolo u otro. En este caso, starship es una solución que encaja a la perfección en estos requerimientos.

Instalación y primeros pasos

El primer paso es la instalación de starship. Así, te indico algunos casos dependiendo del sistema operativo y en su caso de la distribución que estés utilizando. Así por ejemplo,

  • Manjaro: sudo pacman -S starship
  • Ubuntu: cargo install starship --locked
  • Ubuntu (snap): snap install starship
  • Android (termux): pkg install starship

Una vez instalado el siguiente paso es configurarlo. Aquí depende de la shell que estés utilizando Bash, Cmd, Elvish, Fish, Ion, Nushell, PowerShell, Tcsh, Xonsh o Zsh. En concreto, y por no extenderme demasiado, te cito los dos que conozco.

En el caso de Bash, tienes que añadir la siguiente línea al final de ~/.bashrc,

eval "$(starship init bash)"

Y en el caso de Zsh, tienes que añadir al final de tu archivo de configuración ~/.zshrc, la siguiente línea,

eval "$(starship init zsh)"

Yo además, previamente a esta línea añadí la siguiente,

export STARSHIP_CONFIG=~/.config/starship/starship.toml

Esta línea me permite indicar donde quiero que me guarde el archivo de configuración de starship, por de lo contrario lo deja directamente bajo el archivo ~/.config/, que a mi en particular no me gusta.

Configuración

LOS COLORES Y VIM

Una vez instalado y personalizado para tu shell, llega el momento de configurar y personalizar tu prompt, el prompt para gobernarlos a todos. Por que sinceramente, tengo que decirte que recién instalado, no es nada aparente, es necesario, darle un poquito de color.

Para esto, te recomiendo que además de darles un vistazo a mis dotfiles que puedes encontrar en mi repositorio de GitHub, también veas algunas configuraciones realmente espectaculares de otros usuarios, que puedes encontrar en presets.

Una vez revisado, llega el momento de comenzar con la configuración. Para esto además de revisar la documentación de Starship darte algunas recomendaciones. Nada mas comenzar el archivo de condiguración se encuentra la definición del formato. Algo como le que te muestro a continuación,

format = """
$sudo\
$directory
"""

Cada uno de los $<lo-que-sea> se corresponde con un paquete que te permite mostrar información. Puedes seleccionar tantos paquetes como quieras o consideres, y personalizarlos y adaptarlos a tus necesidades.

Precisamente la potencia de este prompt de prompts, es precisamente que tiene una gran cantidad de paquetes altamente configurables. Y que no necesitas tenerlos todos, solo los que a ti te hagan falta.

Cada uno de estos paquetes lo puedes configurar utilizando una definición del tipo que te muestro a continuación,

[paquete]
disabled = false

De cualquier forma, es importante, que revises la documentación de cada uno de los paquetes, porque no todos tienen las mismas opciones y posibilidades.

Por ejemplo, en el caso de los lenguajes de programación, puedes definir cuestiones como activa el paquete. Es decir, el paquete en cuestión no está siempre activo, sino que se activa en función de que existan determinados archivos, o que hayan archivos con determinadas extensiones.

Por supuesto, tienes toda una batería de paquetes para trabajar con Git, lo cual es muy de agradecer. De esta forma, encontrarás todo tipo de información con solo echar un vistazo al prompt.

Conclusión

A pesar de que estaba realmente satisfecho con PowerLevel10k, el cambio a valido realmente la pena. Ahora tengo mas información, y además tengo la información que necesito, o la que yo mismo he personalizado.

Ahora mismo, tengo configurado lo mínimo imprescindible, y con el paso de los días iré actualizando y personalizando este prompt para gobernarlos a todos, hasta que lo deje lo mas afinado posible. Aunque tengo claro, que esto es un empezar y no terminar.


Más información,

Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.

La entrada Un prompt para gobernarlos a todos Linux, MacOS y Windows aparece primero en Atareao.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.