Configurar Starship en Manjaro y Zsh#
Hace poco vengo cambiando múltiples herramientas en mi día a día, y en el manejo de la terminal Linux hay varios de esos cambios. Uno de esos es el shell prompt (que podría traducirse tal vez como “indicador de terminal”), y estoy usando starship. Sin embargo, hay detalles no documentados sobre como habilitarlo en Manjaro con zsh, que aquí les cuento.
Para empezar, primero, un indicador de terminal es un programa que genera los textos asociados a cada ejecución de comandos en la terminal y lo que hay antes del cursor. Un buen indicador de terminal nos aporta información útil rápidamente del directorio en el cual nos ubicamos, de la ejecución de una línea de comandos o incluso la batería. Starship nos entrega esto, y hace parte del nuevo ecosistema de utilidades desarrolladas en rust.
Instalar Starship#
En Manjaro, disponemos de starship en el repositorio oficial, pero igual puedes instalar a partir de la rutina de instalación oficial que aplica a cualquier distribución Linux (útil si usas una distro como Ubuntu).
sudo pamac install starship --no-confirm
curl -sS https://starship.rs/install.sh | sh
Iniciar Starship#
Al usar zsh, la inicialización la podemos hacer añadiendo el
init
al archivo ~/.zshrc
.
echo 'eval "$(starship init zsh)"' >> ~/.zshrc
source ~/.zshrc
El lenguaje de terminal por defecto es bash y si estás cómodo con este, la forma de inicializar es la siguiente.
echo 'eval "$(starship init bash)"' >> ~/.bashrc
source ~/.bashrc
Finalmente, estamos listos, o al menos, según el procedimiento oficial.
En Manjaro, zsh posee una configuración predeterminada para el
indicador de terminal, en el archivo ~/.zshrc
y en el archivo
/usr/share/zsh/manjaro-zsh-prompt
. Esta configuración es para
habilitar powerline y powerlevel10k (p10k) y evita el uso de un prompt
adicional.
Es necesario deshabilitar el uso de estos dos. Para ello, debemos pasar a falso el uso de powerline y comentar (o borrar) las líneas de la configuración del prompt.
# Use powerline
USE_POWERLINE="false"
# Has weird character width
# Example:
# is not a diamond
HAS_WIDECHARS="false"
# Source manjaro-zsh-configuration
if [[ -e /usr/share/zsh/manjaro-zsh-config ]]; then
source /usr/share/zsh/manjaro-zsh-config
fi
# Use manjaro zsh prompt
#if [[ -e /usr/share/zsh/manjaro-zsh-prompt ]]; then
# source /usr/share/zsh/manjaro-zsh-prompt
#fi
eval "$(starship init zsh)"
Ahora, reconstruimos la configuración y tenemos starship en Manjaro con Zsh.
source ~/.zshrc
Archivo de configuración#
En general, la configuración por defecto es buena y no hay una necesidad de
cambios fuertes. Sin embargo, el módulo de gcloud
se muestra en general en
la sesión lo cual no me es agradable y poco útil en mi caso. Por este motivo
creo el archivo de configuración ~/.config/starship.toml
y deshabilito
el módulo.
cat << 'EOF' > ~/.config/starship.toml
[gcloud]
disabled = true
EOF
Puedes consultar otras opciones de configuración en Starship: Configuration.