Windows Terminal è la nuova applicazione rilasciata direttamente da Microsoft per la gestione dei terminali. Supporta diverse versioni e in un unica finestra è possibile avere terminali CMD, Powershell, Bash e Cloud Shell. Supporta inoltre l’utilizzo di termianli remoti e di sottosistemi Linux.
Questa guida utilizza Powershell 7.x.x
- Windows Terminal (su Windows 11 è preinstallato, su Windows 10 scaricarlo dallo store Microsoft)
- Powershell 7.x.x
Scaricare Hack Nerd Font dal repository GitHub ufficiale e installare tutti i font nella cartella
Impostare il terminale come terminale di default
Andare su Impostazioni –> Aspetto –> Trasparenza e impostare un valora comporeso tra 50% e 80%. Questo valore determina la trasparenza del terminale rispetto alle finestre sotto o allo sfondo del desktop.
Aprire i file JSON delle configurazioni, cercare le impostazioni del tema One Half Dark e duplicare la sezione
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.
Andare su impostazioni predefinite e impostare la combinazione colori “One Half Dark Modded”. Impostare nel “Tipo di carattere” il font Hack NF
Lanciare il terminale come Amministratore. Lanciare ogni comando singolarmente.
Uso di NVIM
Come editor di terso da terminale utilizzo NVIM, è un editor molto snello e comodo da usare da terminale. Richiede tuttavia un po' di pratica. Se non si è pratici di VIM o NVIM e non si vuole iniziare ad utilizzarlo non installatelo nel blocco di codice successivo. I file che saranno creati successivamente con NVIM possono essere creati con qualsiasi altro editor di testo, l’importante è usare gli stessi nomi dei file e metterli nei percorsi corretti.
Per usare NVIM (ed è la prima volta) tutto quello che serve da sapere per completare il tutorial sonoi due comandi semplici.
Quando NVIM è aperto è sufficiente premere il tasto “i” per entrare in modalità inserimento e poter scrivere. Quando si ha terminato di scrivere è sufficiente premere “Esc” per uscire dalla modalità scrittura e digitare “:wq” per salvare (“w” di write) e chiudere (“q” di quit).
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 creare 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
|
Posizionarsi nello Home dell’utente corrente.
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 defult che viene letta da Powershell)
mkdir .config/powershell
# Creare il file user_prfile.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
|
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).
In una console aperta come Ammistratore lanciare ogni comando singolarmente:
1
|
Install-Module posh-git -Scope CurrentUser -Force
|
Seguendo la guida ufficiale di Oh My Posh occorre:
In una console aperta come Ammistratore lanciare ogni comando singolarmente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# Installallare 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 diposibili 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
|
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 Ammistratore lanciare ogni comando singolarmente:
1
|
Install-module -Name Terminal-Icons -Repository PSGallery -Force
|
Il modulo Z serve a navigare rapidamente il filesystem basandosi sui percorsi già usati con il comando cd
In una console aperta come Ammistratore lanciare ogni comando singolarmente:
1
|
Install-module -Name Z -Force
|
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 Ammistratore 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
|
In una console aperta come Ammistratore 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'))
|
Fzf è un modulo per la ricerca di contenuti con Fuzzy.
In una console aperta come Ammistratore 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'
|
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
}
}
|