Starship: Una shell para imaginar Linux en las estrellas
Hablamos de Starship, una prompt de consola minimalista, muy rápida y extremadamente personalizable para la mayoría de las terminales (shell), ya sea Bash, Zsh o Fish (Si no sabes que son aquí te explico). La consola Starship está diseñada para mostrar solo la información que necesitemos mientras trabajamos, manteniéndose elegante en todo momento.
Háblame un poco más sobre Starship
No es la primera vez que hablamos de herramientas que extienden la consola, recordar que hace un tiempo hablamos de Byobu.
Veamos que podemos encontrar trabajando con ella. Por ejemplo, el símbolo del sistema se vuelve rojo si el último comando devuelve un código distinto de cero o nos ofrece información del nombre del actual nombre del usuario, si no es el mismo que el usuario registrado. Además, añade curiosas imágenes mientras trabajamos.
Starship es software libre, ya que utiliza una licencia ISC, reconocida por la Free Software Foundation, para dudas podéis consultar esta nota.
Sí, es verdad que el título no tiene mucho que ver con el producto en sí, pero como soy un aficionado de la ciencia ficción, aprovecho la mínima oportunidad para ser galante de ello. 🙂
Requisitos previos
Para que funcione la herramienta debemos tener instalado el paquete llamado «Powerline«. Si no lo conoces te puede decir que Powerline es un complemento de línea de estado para vim, y proporciona líneas de estado y avisos para varias otras aplicaciones, incluidas zsh, bash, tmux, IPython, Awesome, i3 y Qtile.
En una entrada anterior os expliqué en que consistía Powerline y como instalarlo en GNU/Linux:
Powerline: Añade poder a la terminal
También necesitamos el paquete de fuentes llamado FiraCode, para ello debemos seguir estas instrucciones:
# Sistemas paquetería APT como Debian, Ubuntu o Linux Mint sudo apt install fonts-firacode # Instalación en Fedora dnf copr enable evana/fira-code-fonts dnf install fira-code-fonts
En otras distribuciones, como es el caso de Centos 7, podemos seguir las instrucciones ubicadas en el repositorio oficial del proyecto.
Instalación de Starship en GNU/Linux
Una vez nuestro equipo ya cumple con los requisitos previos, vamos a proceder con la instalación.
Podemos seguir diferentes caminos, por ejemplo utilizar la herramienta Brew, de la que hablamos hace un tiempo:
brew install starship
O bien utilizar Rust
Para ello previamente instalamos la herramienta:
sudo curl https://sh.rustup.rs -sSf | sh
E instalamos:
cargo install starship
Instalación en Arch
En sistemas Arch tenemos el paquete disponible en los repositorios de AUR
yay -S starship
Instalación en todas las distribuciones
Para otras distribuciones GNU/Linux, podemos seguir estas instrucciones:
wget https://github.com/starship/starship/releases/latest/download/starship-x86_64-unknown-linux-gnu.tar.gz tar xvf starship-x86_64-unknown-linux-gnu.tar.gz sudo mv starship /usr/local/bin/
Configurar Starship por primera vez
Para poder utilizar Starship debemos modificar las variables de entorno.
Si utilizamos Bash, modificaremos el fichero de configuración «./bashrc»
eval "$(starship init bash)"
Si utilizamos Fish:
# ~/.config/fish/config.fish starship init fish | source
Y en el caso de Zsh:
# ~/.zshrc eval "$(starship init zsh)"
Una vez hecho esto, en mi caso he utilizado la configuración para Zsh, – que desde que os hablé de ella en una entrada, es la que utilizo en mi portátil -, podermos adaptar su configuración a nuestras necesidades. Para ello debemos seguir la documentación oficial para la configuración.
En mi caso, sin modificar su configuración, el resultado es el siguiente:
Crear configuración
Consultado la documentación indicada antes, sabemos que el fichero de configuración a crear debemos estar hubicado en la home del usuario, dentro de la carpeta oculta «.config». Creamos el fichero de la siguiente manera:
touch ~/.config/starship.toml
Por ejemplo podemos impedir que se cree una nueva línea al comienzo del «prompt» o bien reemplazar el símbolo «❯» por «➜». Como se ve en el ejemplo:
add_newline = false [character] symbol = "➜"
Además podemos añadir que nos muestre nuestro nombre de usuario:
[username] disabled = false show_always = true
Hay que tener en cuenta que utilizando la configuración por defecto, solo veremos el nombre de usuario root, si lo estamos utilizando. Para el resto de usuarios hay que modificar la configuración.
Si utilizamos un portátil, como es mi caso, nos puede aparecer información sobre el estado de la batería:
[battery] full_symbol = "🔋" charging_symbol = "⚡️" discharging_symbol = "💀" [[battery.display]] threshold = 10 style = "bold red" [[battery.display]] threshold = 30 style = "bold yellow"
Nos avisará cuando quede menos del 10% del total utilizando el color rojo y el color amarillo cuando quede menos del 30%, además hemos indicado los símbolos para los avisos.
Trabajando con Git
El módulo git_state
se mostrará en directorios que forman parte de un repositorio git
y donde hay una operación en progreso, como: REBASING, BISECTING, etc
La documentación en esta parte es bastante extensa.
Por ejemplo podemos añadir una serie de símbolos, para saber el estado del proyecto:
[git_status] conflicted = "🏳" ahead = "🏎💨" behind = "😰" diverged = "😵" untracked = "🤷" stashed = "📦" modified = "📝" staged.value = "++" staged.style = "green" staged_count.enabled = true staged_count.style = "green" renamed = "👅" deleted = "🗑"
Podemos ver los resultados de estos cambios, trabajando con un proyecto:
Y esto es todo, la verdad es que esta extensión de consola tiene mucha miga, y daría para diversas entradas. ¿Tienes experiencia con Starship? ¿Conoces algún producto similar?
Antes de acabar, si quieres más infomo sobre este prompt, puedes consultar la entrada que escribío el amigo Victorhck hace unas semanas:
Cómo instalar el prompt Starship en Linux
Fuentes consultadas:
How to install Powerline fonts into CentOS 7
How the install Firacode