#howto - Installazione e configurazione di Starship shell prompt

Scritto da il
Redatto da

Starship è una prompt shell compatibile con Bash, Zsh, Fish, Ion e Powershell e quindi con Linux, Windows e MacOS.

Introduzione

Si tratta di uno strumento scritto in Rust, estremamente leggero, veloce ed altamente personalizzabile, che estende le funzionalità della shell di sistema. Volendo fare un esempio, Starship viene offerto con plugin per l’integrazione con diversi linguaggi, ad esempio rileva i pacchetti npm e le applicazioni NodeJS, Lua, Switft, Python ma anche Golang, Java, Kotlin e alri.

Starship offre inoltre l’integrazione con git, openstack e docker. Maggiori informazioni sul supporto, configurazione e plugin, le trovate qui.

Requisiti

Come detto nell’apertura di questo articolo, Starship funziona con quasi tutte le shell più comuni. Per tanto come unico requisito da soddisfare, ci dobbiamo assicurare di avere una delle seguenti shell nel nostro sistema:

  • Bash
  • Zsh
  • Fish
  • Powershell (su Windows)

Su Linux e MacOS, possiamo assicurarci della shell in uso digitando:

echo $0

la quale nel ritornerà la shell in uso, nel mio caso:

? echo $0
zsh

Installazione

L’installazione è comune per tutti i sistemi e necessita di curl (normalmente offerto di sistema in tutte le distribuzioni Linux e su MacOS). Digitiamo quindi:

curl -fsSL https://starship.rs/install.sh | bash

per avviare il download dello script ed iniziare l’installazione.

Una volta ultimato il processo di installazione, è necessario modificare il file di configurazione della propria shell per avviare Starship. Seguite quindi la sezione qui sotto relativa alla vostra shell.

Bash

Il file che dobbiamo modificare è .bashrc, presente nella home del nostro utente, volendo proseguire con nano:

nano ~/.bashrc

inseriamo alla fine:

eval "$(starship init bash)"

questo avvierà starship all’apertura di una nuova shell Bash. Possiamo testare subito le modifiche riavviando il terminale in uso o entrando in una nuova shell con bash.

Zsh

Nel caso di Zsh, il file che dobbiamo modificare è .zshrc, presente nella home del nostro utente, volendo proseguire con nano:

nano ~/.zshrc

inseriamo alla fine:

eval "$(starship init zsh)"

questo avvierà starship all’apertura di una nuova shell Zsh. Possiamo testare subito le modifiche riavviando il terminale in uso o entrando in una nuova shell con zsh.

Fish

Nel caso di Fish, dobbiamo modificare il file config.fish, presente nella locazione .config nella home del nostro utente, volendo proseguire con nano:

nano ~/.config/fish/config.fish

inseriamo alla fine:

starship init fish | source

questo avvierà starship all’apertura di una nuova shell Zsh. Come per i precedenti casi, possiamo testare le modifiche riavviando il terminale se possibile o avviando una nuova shell con fish.

Powershell

In Powershell per Windows, il file di configurazione che dobbiamo modificare, è posizionato in ~\Documents\PowerShell\Microsoft.PowerShell_profile.ps1, apriamolo ed aggiungiamo alla fine del documento:

Invoke-Expression (&starship init powershell)

Configurazione

Uno dei punti forza di Starship, è di certo la sua personalizzazione. Di base è configurato per offrire il massimo delle funzionalità ma possiamo creare la nostra configurazione personalizzata creando il file tarship.toml nella locazione .config della nostra home:

touch ~/.config/starship.toml

Un esempio di configurazione offerto dalla documentazione ufficiale:

# Don't print a new line at the start of the prompt
add_newline = false

# Replace the "?" symbol in the prompt with "?"
[character]                            # The name of the module we are configuring is "character"
success_symbol = "[?](bold green)"     # The "success_symbol" segment is being set to "?" with the color "bold green"

# Disable the package module, hiding it from the prompt completely
[package]
disabled = true

Da qui è possibile scegliere quali pacchetti abilitare, personalizzare la prompt e deciderne il comportamneto. Per questo vi rimando alla documentazione ufficiale.

Per dubbi o chiarimenti non esitate a chiedere nel nostro gruppo telegram.

history_edu Revisioni