Robe da nerd: Oh my zsh e grc. Come passare ad una shell interattiva e colorata… FINALMENTE!

Che bello Oh-my-zsh!E che bello grc (Great Colouriser)!

Era da tempo che volevo rimettermi a lavorare con zsh, giusto per vedere i miglioramenti fatti e che ti vado a trovare? OH-MY-ZSH. da lì, il salto a utilizzare grc e non avere più un triste schermo grigio su nero da leggere è stato breve.

Allora, inizio da zero. Questo è un diario e così mi ricordo anche il perché ho testato e installato il tutto.

Ho installato negli ultimi tempi svariati nuovi switch, router e firewall e, come tutti gli sfigati nerd compulsivo-ossessivi ho sempre utilizzato la mia fedele shell linux… triste, vero? Sono quindi partito da schermate simili a questa: Schermata da 2017-12-21 16-29-48

Immagine che rende tutto ancora più triste. Ma dove sono i colori???

Al che mi sono ricordato che vim, emacs, ecc, hanno un supporto neanche tanto base per i colori e che aiuti per il codice, per la lettura dell’output, ecc. Probabilmente, quello con cui ho lavorato di più è stato vim, con le sue regole vim colors, tutte come doveroso in formato testuale.

Quindi il tutto è partito da questo: come avere un output leggibile e comprensibile magari anche con qualche colore?

Ricerca Google -> “colour shell output” -> Risultati: [
“bash – How to change color of echo output in linux”;
“Shell Colors: colorizing shell scripts – Bash Shell Scripting by Examples”;
“bash:tip_colors_and_formatting – FLOZz’ MISC”
]

Tutto su bash e tutto inutile, fino ad ora. Altra ricerca cercando un comando semplice da colorare: “linux colour output of ping” -> Risultati: [
“Linux / Unix: Highlight / colour ping command output – nixCraft”;
“linux – Different Color for command and output – Super User”;
“GitHub – garabik/grc: generic colouriser”
]

OK, leggo i primi due, però si tratta di eseguire non un solo comando ma un comando seguito da una pipe verso un altro comando. Bene ma non benissimo. Se necessario, lo faccio ma andiamo avanti. GRC, che è sto GRC? Generic Colouriser. Oh ma che bello, sì, proprio quello che mi serve, proviamolo.
Ed ecco i miei colori sui vari comandi (ping in primis):

Schermata da 2017-12-21 16-49-12

Come direbbe una petalologa famosa: “Bello, vero? Sì!”

Però, vedo durante la configurazione che si parla anche di zsh e nelle varie ricerche, mi è saltato all’occhio un altro progetto: oh-my-zsh.Proviamolo.

Installo zsh, cambio shell di default, rilancio il terminale e installo oh-my-zsh:

Risultato 1: Autocompletamento zsh e non più bash.
la lista delle opzioni è direttamente selezionabile e non devo più andare a scrivere pezzo per pezzo ciò che mi serve. Esempio con ssh che mi sembra uno tra i più azzeccati:

Schermata da 2017-12-21 17-08-59

Per avere questo output ho solo scritto “ssh -o ” e premuto due volte TAB.

Altro esempio, questo soprattutto grazie a oh-my-zsh è nmap:

Schermata da 2017-12-21 17-26-28

Anche questo, fatto con “nmap -” e una volta il tasto TAB. E tra le due liste, bello, sempre più bello, posso anche muovermi con le freccie e con un invio, scegliere l’opzione.

Appunto personale: nei prossimi giorni voglio anche mettere qualcosa sul supporto git di oh-my-zsh, che ho visto di sfuggita.

BGInfo e il desktop sovrapposto

Adoro BGInfo. A costo di ripetere cose dette milioni di volte su altri siti, trovo che sia un programma semplice, leggero, facile da usare che fa quello che gli si chiede.

Certo, ci sono alternative che spesso fanno molte più cose, a volte anche in tempo reale. Oggi ho trovato su un sito un utente che consigliava RainMeter come alternativa a BGInfo. Beh, con tutto il rispetto, è come consigliare un bilico in sostituzione a una carriola. Ripeto: BGInfo fa quel poco (tanto) che dice di fare e lo fa con un metodo che a me piace (scrive un immagine, la imposta come desktop e tanti saluti…).

Piccolo problema che ritengo nasca dalla complessità intrinseca di Windows: spesso sovrappone due o più immagini temporanee una all’altra. Dopo essermi “leggermente stufato”, parafrasando il ragionier Ugo, ho buttato giù un piccolo script che fa questo:

  1. cerca se c’è un immagine già impostata sul desktop
  2. se c’è, salva il percorso dell’immagine in una variabile di registro (LastWallpaperSource)
  3. controlla se BGInfo è già stato eseguito (uso un’altra variabile di registro per la valutazione)
  4. se sì, sostituisce l’immagine del desktop con l’immagine di partenza recuperata al punto 2
  5. se no, esegue BGInfo.

Dubbi? Io sì, tant’è che sono passato da VBS a Powershell per una serie di motivi (non ultimo l’esecuzione come Operazione Pianificata del comando). Copio-incollo il listato qui sotto per chi volesse utilizzarlo e darmi consigli.

A voi…