#howto - Powerline e Powerlevel10k: prompt piacevoli e veloci
Le interfacce da terminale non sono note per essere eleganti alla vista: il fatto che sia supportato solo il testo è una caratteristica intrinseca dei terminali, che ha profonde ragioni storiche.
Talvolta è un punto di forza (per minimalismo, densità di informazioni, minori distrazioni a schermo, etc…).
Tuttavia, altre volte è una limitazione, a cui negli anni si è cercato di far fronte con soluzioni sempre diverse: è il caso di Powerline e simili (come Powerlevel10k, specifico per Zsh).
Per iniziare
Powerline è Noto plugin per Vim, anche se negli anni si è evoluto per supportare più piattaforme, Powerline fornisce statusline e prompt a vari software per terminale: sono supportati bash, zsh, fish, tmux, IPython, Awesome, i3 e Qtile.
Cos’è Powerlevel10k?
Powerlevel10k, fork di Powerlevel9k, è un tema (ispirato a Powerline) specifico per i prompt Zsh.
I suoi punti di forza sono le alte prestazioni e l’estrema personalizzazione.
Che cos’è un prompt?
Si tratta dell’interfaccia, mostrata all’interno di un terminale, dove compare il testo attualmente immesso in input annesso a alcune informazioni utili (ad esempio cartella corrente, utente e gruppo).
Powerline e Powerlevel10k possono modificare quest’ultima parte, aggiungendo nuove informazioni al prompt, cambiarne lo stile e molto altro.
Solitamente un prompt occupa un’unica riga di terminale, ma esistono anche prompt multilinea.
Requisiti Powerlevel
Per beneficiare appieno di Powerline e software simili, è necessario l’utilizzo di alcuni font opportunamente modificati.
Font
Per installare nuovi font da terminale, è necessario muovere i font scaricati (o la cartella che li comprende) in ~/.local/share/fonts
(per l’utente corrente) o /usr/local/share/fonts
(per tutto il sistema).
Una volta installato un nuovo font, è necessario segnalare al sistema operativo la loro presenza con:
fc-cache -vf ~/.local/share/fonts
# oppure
fc-cache -vf /usr/local/share/fonts
Powerline fonts
I powerline fonts sono varianti dei font più conosciuti, appositamente modificati, che aggiungono il supporto a caratteri non ufficialmente approvati dal consorzio Unicode: grazie ad essi, è possibile mostrare sul terminale alcune icone come se fossero caratteri.
Consulta il sito ufficiale per maggiori informazioni e per il download.
Nerdfonts (consigliati)
I nerdfonts sono simili ai Powerline fonts, ma sono molto più completi: aggiungono il supporto a molti altri glifi non legati a Powerline (come le icone di Material Design, Font Awesome, e molte altre ancora).
Consulta il (https://www.nerdfonts.com/)[sito ufficiale] per maggiori informazioni e per il download.
Powerlevel10k
Sebbene Powerline supporti Zsh, è invece consigliato Powerlevel10k che ha prestazioni superiori, maggiore personalizzazione e migliore supporto (differentemente da Powerline, tutto il necessario è già incluso e non esistono requisiti “consigliati”).
Come anticipato, Powerlevel10k non è supportato su shell diverse.
Installazione Powerlevel
L’installazione (maggiori informazioni qui) varia a seconda del framework utilizzato (nessuno, Oh-My-Zsh, Prezto, e così via).
Installazione manuale (nessun framework)
Se non si sta utilizzando alcun framework, l’installazione va effettuata in questo modo:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >> ~/.zshrc
La cartella di installazione di default sarà ~/powerlevel10k
, ma può essere modificata all’occorrenza.
Oh-My-Zsh
Per gli utenti Oh-My-Zsh:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
echo 'ZSH_THEME="powerlevel10k/powerlevel10k"' >> ~/.zshrc
Prezto
Per gli utenti Prezto:
echo 'zstyle :prezto:module:prompt theme powerlevel10k' >> ~/.zpreztorc
Personalizzazione Powerlevel
Una volta installato Powerlevel10k, la maggior parte della configurazione può essere effettuata interattivamente con:
p10k configure
Al termine, verrà generato un file di configurazione (~/.p10k.zsh
, a meno che il percorso di installazione di Powerlevel10k non sia stato modificato in precedenza).
La configurazione può essere personalizzata ulteriormente modificando il file come testo con nano
o qualunque altro editor.
Le linee guida si possono trovare sulla (https://github.com/romkatv/powerlevel10k?tab=readme-ov-file#extremely-customizable)[pagina GitHub] del progetto.
Powerline
Per shell diverse da Zsh (in tal caso, è consigliata l’installazione di Powerlevel10k), va installato Powerline dopo aver soddisfatto alcuni requisiti:
Requisiti Powerline
Python è l’unico requisito obbligatorio da soddisfare per utilizzare Powerline.
Assieme all’installazione di Python verrà installato anche il suo package manager, pip
(se così non fosse, consulta (https://pip.pypa.io/en/latest/installation/)[questa] pagina).
Ubuntu
apt install python3
Fedora
dnf install python3
Arch linux
pacman -S python-pipx
Installazione Powerline
Via pip:
pip install powerline-status
Su archlinux pipx:
pipx install powerline-status
Sul sito della documentazione c’è un’intera pagina dedicata a ulteriori requisiti opzionali, sia per migliorare le prestazioni che per abilitare il supporto a nuovi segmenti.
Configurazione
Nei seguenti paragrafi, {repository_root}
va sostituito con quanto appare accanto a “Location: “ una volta digitato pip show powerline-status
.
Bash
Va aggiunto nel file ~/.bashrc
:
powerline-daemon -q
POWERLINE_BASH_CONTINUATION=1
POWERLINE_BASH_SELECT=1
source {repository_root}/powerline/bindings/bash/powerline.sh
Fish
Va aggiunto nel file ~/config.fish
:
set fish_function_path $fish_function_path "{repository_root}/powerline/bindings/fish"
powerline-setup
Personalizzazione Powerline
Sfortunatamente, la personalizzazione dei segmenti del prompt è ben più macchinosa se confrontata con Powerlevel10k.
Il file di configurazione principale è situato in ~/.config/powerline/config.json
e può essere creato per sovrascrivere le impostazioni di default di Powerline (e che si applicano a tutti i software su cui può essere abilitato).
Per personalizzare il prompt dei comandi, è necessario creare e modificare il file ~/.config/powerline/themes/shell/default.json
Un esempio di configurazione molto semplice (che sovrascrive quella di default - situata in {repository_root}/powerline/themes/shell/default.json
) è la seguente:
{
"default_module": "powerline.segments.common",
"segments": {
"left": [
{ "function": "powerline.segments.common.env.user" },
{ "function": "powerline.segments.shell.cwd" }
],
"right": [
{"function": "powerline.segments.shell.last_pipe_status" }
]
}
}
Per personalizzare i colori del prompt, è necessario creare e modificare il file ~/.config/powerline/colorschemes/shell/default.json
I colori di default sono definiti nei vari file di configurazione in {repository_root}/powerline/colorschemes
.
Altre informazioni
La pagina di aiuto per conoscere tutte le impostazioni di configurazione è disponibile sul sito ReadTheDocs di Powerline.
Esiste anche la pagina specifica per ottenere maggiori informazioni sui segmenti, più tutte le informazioni necessarie per abilitarli e configurarli.
Powerline come statusline
Powerline supporta non solamente la personalizzazione del prompt, ma anche della statusline di svariati altri software, come Vim.
Vim
Se si sta utilizzando ~/.vimrc
con il supporto Python abilitato, vanno aggiunte le seguenti righe:
python3 from powerline.vim import setup as powerline_setup
python3 powerline_setup()
python3 del powerline_setup
Una volta abilitato, la statusline di Vim dovrebbe apparire così: