Contenuti




Windows Terminal: personalizzazione

Font, temi e profilo PowerShell


Windows Terminal: personalizzazione

Windows Terminal è l’applicazione di Microsoft per la gestione dei terminali. In un’unica finestra puoi usare CMD, PowerShell, Bash e Cloud Shell, oltre a terminali remoti e sottosistemi Linux.

In questo articolo
  • Font e aspetto di base
  • Tema e colori personalizzati
  • Moduli utili e profilo PowerShell

Approfondimenti correlati:

Questa guida utilizza PowerShell 7.x.

Prerequisiti

  • Windows Terminal (su Windows 11 è preinstallato, su Windows 10 scaricarlo dallo store Microsoft)
  • PowerShell 7.x.x

1. Installare Hack Nerd Font

Scaricare Hack Nerd Font dal repository GitHub ufficiale e installare tutti i font nella cartella

2. Configurazioni del terminale di base

1. Terminale di default

Impostare il terminale come terminale di default

Impostare Windows terminal come terminale di default

2. Trasparenza del terminale

Andare su Impostazioni –> Aspetto –> Trasparenza e impostare un valore compreso tra 50% e 80%. Questo valore determina la trasparenza del terminale rispetto alle finestre sotto o allo sfondo del desktop.
Impostare la trasparenza del terminale con Trasparenza
Impostare la trasparenza del terminale con Trasparenza

3. Tema One Half Dark Modded

Aprire i file JSON delle configurazioni, cercare le impostazioni del tema One Half Dark e duplicare la sezione
Duplicare la combinazione colori One Half Dark

Modificare il tema copiato come segue:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
  "background": "#001B26",
  "black": "#282C34",
  "blue": "#61AFEF",
  "brightBlack": "#5A6374",
  "brightBlue": "#61AFEF",
  "brightCyan": "#56B6C2",
  "brightGreen": "#98C379",
  "brightPurple": "#C678DD",
  "brightRed": "#E06C75",
  "brightWhite": "#DCDFE4",
  "brightYellow": "#E5C07B",
  "cursorColor": "#FFFFFF",
  "cyan": "#56B6C2",
  "foreground": "#DCDFE4",
  "green": "#98C379",
  "name": "One Half Dark Modded",
  "purple": "#C678DD",
  "red": "#E06C75",
  "selectionBackground": "#FFFFFF",
  "white": "#DCDFE4",
  "yellow": "#E5C07B"
 },
Attenzione alla virgola finale
Le configurazioni sono in un file JSON, se il tema si trova in mezzo ad altri temi mantenere la virgola. Se è l’ultimo tema rimuovere la virgola finale.

4. Impostare tema e font

Andare su impostazioni predefinite e impostare la combinazione colori “One Half Dark Modded”. Impostare nel “Tipo di carattere” il font Hack NF
Impostare la trasparenza del terminale con Acrylic

3. Installare i moduli aggiuntivi

Lanciare il terminale come Amministratore. Lanciare ogni comando singolarmente.

Uso di NeoVim

Come editor di testo da terminale utilizzo NeoVim, è un editor snello e comodo. Richiede un po' di pratica. Se non vuoi usarlo, puoi creare i file con qualsiasi editor, mantenendo nomi e percorsi.

Per usare NeoVim (ed è la prima volta) bastano due comandi semplici. Quando NeoVim è aperto, premi “i” per entrare in modalità inserimento. Quando hai terminato, premi “Esc” e digita “:wq” per salvare e chiudere.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# Installare Scoop (Command-line installer per Windows)
iwr -useb get.scoop.sh | iex

# Curl (Strumento da riga di comando per il trasferimento di dati)
scoop install curl sudo jq

# Se non è già installato installare Git
winget install -e --id Git.Git

# Neovim (Editor di testo da terminale)
scoop install neovim

Per la configurazione di base di NeoVim crea la cartella nvim:

1
2
3
4
5
# Creare la cartella
mkdir $HOME\AppData\Local\nvim

# Creare il file di configurazione di base
nvim $HOME\AppData\Local\nvim\init.vim

Nel file inserire:

1
2
3
4
5
6
7
:set number
:set autoindent
:set tabstop=4
:set shiftwidth=4
:set mouse=a
:set cursorline
:set clipboard=unnamed

4. Creare il profilo utente

Posizionarsi nello Home dell’utente corrente.

1
cd $HOME

Creare il profilo utente che conterrà le configurazioni personalizzate.

1
2
3
4
5
6
7
# Creare la cartella powershell in .config (è la cartella di default che viene letta da PowerShell)
mkdir .config/powershell


# Creare il file user_profile.ps1 che conterrà le configurazioni 
nvim .config/powershell/user_profile.ps1
# salvare il file vuoto e chiuderlo con ":wq"

Impostare il profilo appena creato come predefinito:

1
2
3
4
nvim $PROFILE.CurrentUserCurrentHost

# CONTENUTO DEL FILE PROFILE facendo attenzione a mettere il . iniziale!
. $env:USERPROFILE\.config\powershell\user_profile.ps1

5. Oh My Posh e Posh Git

Oh My Posh e Posh Git servono per creare la grafica con il percorso della cartella attuale (Oh My Posh) e il grafico del repository Git (Posh-Git).

1. Installare Posh-Git

In una console aperta come Amministratore lanciare ogni comando singolarmente:

1
Install-Module posh-git -Scope CurrentUser -Force

2. Installare Oh-My-Posh

Seguendo la guida ufficiale di Oh My Posh occorre:

In una console aperta come Amministratore lanciare ogni comando singolarmente:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# Installare Oh-My-Posh
scoop install https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/oh-my-posh.json


# Creare la cartella che conterrà i temi scaricati
mkdir .config\oh-my-posh


# Entrare nella cartella appena creata e scaricare il tema (può essere uno diverso, per vedere tutti i disponibili andare sul sito di Oh My Posh)
Set-Location $HOME\.config\oh-my-posh
curl --location --remote-name https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/night-owl.omp.json

# Tornare alla Home
Set-Location $HOME

6. Installare Terminal Icon

Installare Termila Icon che applicherà le icone alle cartelle e ai file quando si esplorano i contenuiti con “ls” o “Get-ChildItem”:

In una console aperta come Amministratore lanciare ogni comando singolarmente:

1
Install-module -Name Terminal-Icons -Repository PSGallery -Force

7. Installare modulo Z

Il modulo Z serve a navigare rapidamente il filesystem basandosi sui percorsi già usati con il comando cd

In una console aperta come Amministratore lanciare ogni comando singolarmente:

1
Install-module -Name Z -Force

8. Installare PsReadLine

PSReadLine fornisce la storia dei comandi utilizzati. Iniziando a scrivere un comando uscirà sotto alla riga di digitazione l’elenco degli ultimi comandi usati che iniziano con i testo digitato.

In una console aperta come Amministratore lanciare ogni comando singolarmente:

1
2
3
4
5
6
7
Install-Module -Name PSReadLine -AllowPrerelease -Scope CurrentUser -Force -SkipPublisherCheck

Set-PSReadLineOption -PredictionSource History


# Riavviare il terminale come amministratore prima di lanciare la seguente riga altrimenenti darà errore
Set-PSReadLineOption -PredictionViewStyle ListView

9. Installare Choco

In una console aperta come Amministratore lanciare ogni comando singolarmente:

1
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

10. Installare fzf

Fzf è un modulo per la ricerca di contenuti con Fuzzy.

In una console aperta come Amministratore lanciare ogni comando singolarmente:

1
2
3
choco install fzf
Install-Module -Name PSFzf -Scope CurrentUser -Force
Set-PsFzfOption -PSReadlineChordProvider 'Ctrl+f' -PSReadlineChordReverseHistory 'Ctrl+r'

11. user_profile.ps1

Aprire il file user_profile.ps1 creato in precedenza e inserire le configurazioni:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# Text
Write-Host "CUSTOM FUNCTIONS" -BackgroundColor Green
Write-Host "FUNCTIONS:    which   homestart    updatepowershell"
Write-Host "PATH:    home    desktop    src    srctemp    azure    aws    script"


# Promt
Import-Module posh-git
oh-my-posh.exe init pwsh --config "$HOME\.config\oh-my-posh\night-owl.omp.json"| Invoke-Expression


# Incons
Import-module -Name Terminal-Icons


# PSReadLine
Set-PSReadLineOption -EditMode Emacs
Set-PSReadLineOption -BellStyle None
Set-PSReadLineKeyHandler -Chord 'Ctrl+d' -Function DeleteChar
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle ListView


# Fzf
Import-Module PSFzf
Set-PsFzFOption -PSReadLineChordProvider 'Ctrl+f' -PSReadlineChordReverseHistory 'Ctrl+r'


# Alias
Set-Alias vim nvim
Set-Alias ll ls
Set-Alias g git
Set-Alias grep findstr
Set-Alias tig 'C:\Program Files\Git\usr\bin\tig.exe'
Set-Alias less 'C:\Program Files\Git\usr\bin\less.exe'
Set-Alias edge "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
Set-Alias vscode "$HOME\AppData\Local\Programs\Microsoft VS Code\Code.exe"
Set-Alias vs "$HOME\AppData\Local\Programs\Microsoft VS Code\Code.exe"
Set-Alias note "C:\Program Files\Notepad++\notepad++.exe"


# Utilities
function which ($command) {
	Get-Command -Name $command -ErrorAction SylentlyContinue
		Select-Object -ExpandProperty Path -ErrorAction SilentlyContinue
}

function Desktop {
	Set-Location -Path "$HOME\Desktop"
}

function Home {
	Set-Location -Path $HOME
}

function HomeStart {
	Home
	.config/powershell/user_profile.ps1
}

function Update-PowerShell {
	winget search Microsoft.PowerShell
	$Choice = Read-Host "Vuoi aggiornare? [Y] per continuare"
	$Choice = $Choice.ToUpper()
	If ($Choice -eq "Y") {
		winget install Microsoft.PowerShell --source winget
	}
}