cmatrix Windows e Linux: la suggestione della pioggia di codice ispirata a Matrix

cmatrix è un'applicazione da terminale che simula l'effetto grafico del film Matrix. Compatibile con Linux, macOS e Windows tramite WSL, può essere usata per creare un salvaschermo scenografico, anche grazie a un modulo PowerShell personalizzabile.

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

cmatrix su Windows e Linux

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.

cmatrix in Windows con PowerShell

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.

Screensaver cmatrix per Windows

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.

Ti consigliamo anche

Link copiato negli appunti