cmatrix è un piccolo programma da terminale per sistemi Unix-like (come Linux o macOS) che simula l’effetto grafico della pioggia di codice (digital rain) ispirato al film The Matrix. L’applicazione scritta in C riproduce, all’interno del terminale, l’effetto delle lettere verdi che scorrono su sfondo nero, proprio come si vede nel film Matrix (1999). Per usare cmatrix nella finestra del terminale Linux oppure in Windows con WSL (Windows Subsysytem for Linux) basta installarlo usando il package manager.
Sulle distribuzioni Debian, Ubuntu e derivate, basta impartire il comando seguendo: sudo apt install cmatrix -y
Nel caso di Arch Linux, sudo pacman -S cmatrix
. Su macOS, l’installazione si concretizza con Homebrew usando il comando che segue: brew install cmatrix
A cosa serve cmatrix?
Sebbene cmatrix non abbia uno scopo tecnico o produttivo, è utilizzato principalmente per ottenere un effetto visivo scenografico nel terminale; come screensaver da terminale (in combinazione con strumenti come xscreensaver
o tmux
); per demo e presentazioni a tema hacker/cyberpunk; per la personalizzazione della shell o della configurazione di ambienti Linux; per mere finalità di intrattenimento.
Come usare cmatrix in Windows e Linux
Il comando seguente permette di avviare lo “screensaver” cmatrix personalizzando il ritardo di aggiornamento dello schermo e facendo in modo che sia possibile interrompere “la pioggia” premendo un qualunque tasto:
cmatrix -u 8 -s
Nell’immagine, si vede cmatrix in funzione all’interno di una finestra di WSL, in Windows 11.
Esiste anche un eccellente fork realizzato in PowerShell che può essere eseguito dalla finestra del terminale di Windows e importato come un modulo. Basta portarsi nel repository GitHub del progetto quindi scaricare in locale il file cmatrix.psm1
.
Impartendo i seguenti comandi PowerShell, cmatrix si attiva dopo 5 secondi di inattività all’interno della finestra del terminale in Windows:
Set-Executionpolicy remotesigned
Import-Module .\cmatrix
Set-ScreenSaverTimeout -Seconds 5
Enable-ScreenSaver
Premendo un qualunque tasto e poi INVIO oppure CTRL+C, si può arrestare in qualunque momento lo screensaver in stile Matrix.
Avviare cmatrix come screensaver Windows è possibile?
Ci siamo chiesti se fosse possibile avviare cmatrix da WSL in Windows configurandolo come screensaver di sistema. In un altro articolo abbiamo visto cosa sono gli screensaver e se abbia senso usarli ancora oggi.
Aprendo i classici “cassetti della memoria”, ci siamo ricordati che gli screensaver Windows (formato .scr
) altro non sono che file eseguibili. Incredibile ma vero: se si rinomina un file eseguibile con l’estensione .scr
e lo si copia nella cartella %systemroot%\system32
di Windows, il sistema operativo lo mostra nel menu a tendina Screen saver e permette di selezionarlo.
A beneficio dei più smaliziati, diciamo che siamo riusciti a invocare cmatrix come salvaschermo di Windows utilizzando qualche trucco. Abbiamo innanzi tutto creato un file cmatrix.ps1
con il seguente codice:
# Definisce le API native per simulare tasti Add-Type @" using System; using System.Runtime.InteropServices; public class Keyboard { [DllImport("user32.dll")] public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo); } "@ # Codici virtuali $VK_F11 = 0x7A $KEYEVENTF_KEYUP = 0x0002 # Avvia la finestra di WSL da Windows Terminal Start-Process wt.exe -ArgumentList "wsl ~ -e cmatrix -u 8" -WindowStyle Maximized # Attendi che la finestra sia attiva (puoi regolare il tempo se serve) Start-Sleep -Seconds 2 # Invia F11 [Keyboard]::keybd_event($VK_F11, 0, 0, [UIntPtr]::Zero) Start-Sleep -Milliseconds 100 [Keyboard]::keybd_event($VK_F11, 0, $KEYEVENTF_KEYUP, [UIntPtr]::Zero)
Presupponendo che cmatrix sia installato sulla macchina predefinita configurata in WSL, lo script PowerShell avvia il Sottosistema Windows per Windows quindi – dopo un’attesa di due secondi – simula la pressione del tasto F11 per ingrandire a tutto schermo la finestra di WSL.
Convertire lo script PowerShell in un file eseguibile
I seguenti comandi permettono di trasformare il file cmatrix.ps1
in un eseguibile (.exe
):
powershell -ExecutionPolicy Bypass
Install-Module -Name ps2exe -Scope CurrentUser
Invoke-ps2exe cmatrix.ps1 cmatrix.exe
Rename-Item cmatrix.exe cmatrix.scr
Con un doppio clic sul file cmatrix.scr
, si può provarne il funzionamento mentre copiandolo nella cartella %systemroot%\system32
si imposta cmatrix come screensaver di Windows.
Note finali
Complicato? Un po’. Riteniamo, tuttavia, che l’articolo possa offrire alcuni spunti poco conosciuti sui “segreti” di Windows.
In rete ci sono diversi salvaschermo in stile Matrix. Basta copiarli nella cartella %systemroot%\system32
per usarli subito. Attenzione, però. Come abbiamo visto, i file .scr
altro non sono che eseguibili. Alcuni di essi possono quindi essere sfruttati per eseguire malware, presentandoli come semplici salvaschermo.
È quindi fondamentale effettuare un eventuale download soltanto da fonti sicure e, in ogni caso, sottoporre il file .scr
a un esame su VirusTotal.