Formalmente, il Sottosistema Windows per Linux (WSL) veicolato da Windows 10 consente di eseguire solamente programmi per il terminale. Installando un display server appropriato, però, possiamo liberarci da questa limitazione e lanciare anche programmi ad interfaccia grafica (GUI) per Linux senza bisogno di abbandonare il desktop di Windows. Vediamo come procedere.

Guida Bash Windows 10 (WSL): come eseguire programmi Linux/Ubuntu interfaccia grafica (GUI) - gvim windows 10 wsl

Passo 1: installare WSL

Come primissimo passo è necessario installare il Sottosistema Windows per Linux (WSL) e sincerarsi che la shell Bash e il resto dell'ambiente di lavoro siano funzionanti. La guida completa è qui:

» Leggi: La Grande Guida a Bash per Windows 10: come installare Sottosistema Windows per Linux (WSL) ed eseguire programmi Linux/Ubuntu sotto Windows 10

Guida Bash Windows 10 (WSL): come eseguire programmi Linux/Ubuntu interfaccia grafica (GUI) - bash windows 10 spotlight

Passo 2: installare "Xming"

Per consentire all'ambiente Linux in esecuzione sotto Windows 10 di mostrare le finestre delle applicazioni grafiche è necessario installare un display server di terze parti sul sistema operativo Windows. Procediamo quindi a scaricare Xming da qui e completiamo il setup cliccando ripetutamente su Avanti, conservando sempre le opzioni proposte di default.

Da ricordare: in caso Xming non risultasse soddisfacente, VcXsrv è una valida alternativa.

Guida Bash Windows 10 (WSL): come eseguire programmi Linux/Ubuntu interfaccia grafica (GUI)

Al termine dell'installazione, l'icona di Xming appare nell'Area di notifica

Guida Bash Windows 10 (WSL): come eseguire programmi Linux/Ubuntu interfaccia grafica (GUI)

Il componente deve essere già in esecuzione prima di avviare applicazioni grafiche per Linux. Quando non serve, possiamo però chiuderlo tranquillamente con un doppio click sull'icona, seguito da conferma

Guida Bash Windows 10 (WSL): come eseguire programmi Linux/Ubuntu interfaccia grafica (GUI)

In seguito, alla bisogna, dovremo avviarlo in questo modo:

  1. localizzare il suo collegamento cercando xming nel menu Start
  2. cliccare quello chiamato Xming - l'altra scelta, Xming launch, apre l'utility di configurazione

Passo 3: esportare la variabile "display"

Ora aprite Bash e lanciate questi due comandi (uno dopo l'altro, facendo attenzione a rispettare le maiuscole):

  • export DISPLAY=:0.0
  • echo "export DISPLAY=:0.0" > > $HOME/.bashrc

In maniera molto sommaria, basti sapere che rendono disponibile all'ambiente Linux una variabile di nome DISPLAY, valorizzata con le informazioni necessarie a mostrare l'interfaccia grafica sullo schermo dell'utente. Il primo comando è per la sessione corrente, mentre il secondo fa sì che venga eseguito automaticamente ad ogni apertura di Bash successiva.

Passo 2: installazione di applicazioni grafiche per Linux

Ora possiamo installare e lanciare applicazioni ad interfaccia grafica.

Per prima cosa, aggiorniamo i repository:

sudo apt update

Ora sia davvero pronti!

Per la nostra prima prova, installiamo la versione GUI dell'editor di testo VIM:

  1. installare con sudo apt install vim-gtk -y
  2. eseguire con gvim

Guida Bash Windows 10 (WSL): come eseguire programmi Linux/Ubuntu interfaccia grafica (GUI) - gvim windows 10 wsl

Procediamo con Geany, un apprezzato editor indirizzato ai programmatori (IDE):

  1. installare con apt install geany -y,
  2. eseguire con geany

Guida Bash Windows 10 (WSL): come eseguire programmi Linux/Ubuntu interfaccia grafica (GUI) - geany windows 10 wsl

Per aumentare un po' la difficoltà ed entrare nel campo degli strumenti che possono realmente risultare utili nel quotidiano passiamo ad eseguire la versione originale per Linux del programma di fotoritocco GIMP:

  1. installare con sudo apt install gimp -y
  2. avviare con gimp

Guida Bash Windows 10 (WSL): come eseguire programmi Linux/Ubuntu interfaccia grafica (GUI) - gimp windows 10 wsl

Un'altra idea interessante è installare Firefox ed utilizzare il browser web dall'ambiente Linux. Così facendo, ci si ritroverà immediatamente al sicuro da tutti i malware assortiti studiati per colpire Windows durante la navigazione:

  1. installare con sudo apt install firefox -y
  2. eseguire con firefox

Attivando la sincronizzazione (≡ -> Sign in to sync) diviene molto pratico allineare i preferiti, la cronologia e le password con la controparte installata sul PC Windows, semplificando enormemente il passaggio fra un ambiente di lavoro e l'altro

Guida Bash Windows 10 (WSL): come eseguire programmi Linux/Ubuntu interfaccia grafica (GUI) - firefox linux ubuntu windows 10 wsl

Passo 3: Avviare programmi Linux tramite collegamento

Una volta installate, le applicazioni Linux possono essere avviate direttamente dall'ambiente Windows tramite un collegamento. Per maggiori info, vedi il paragrafo Passo 8: lanciare programmi Ubuntu da Windows della nostra guida a WSL.

Guida Bash Windows 10 (WSL): come eseguire programmi Linux/Ubuntu interfaccia grafica (GUI) - windows 10 collegamento nano ubuntu

Come unica complicazione, è necessario esplicitare la variabile DISPLAY prima del comando da eseguire: per Firefox, ad esempio, creeremo il collegamento a bash -c "DISPLAY=:0.0 firefox", per Gimp useremo bash -c "DISPLAY=:0.0 gimp" e via dicendo

Guida Bash Windows 10 (WSL): come eseguire programmi Linux/Ubuntu interfaccia grafica (GUI) - esegui firefox wsl

Per i più efficienti, che volessero lanciare automaticamente Xming prima e un programma Linux subito dopo avviando un solo collegamento, ho sviluppato al volo uno script Batch che svolge esattamente questo compito. Procedere così:

  1. scaricare questo archivio: Avvia xming e programma WSL.zip
  2. estrarre il contenuto in una cartella a piacere
  3. fare click con il pulsante destro del mouse sul file Avvia xming e programma WSL.bat e scegliere Crea collegamento dal menu contestuale
  4. fare click con il pulsante destro del mouse sul collegamento appena creato e scegliere Proprietà
  5. spostarsi alla scheda Collegamento
  6. individuare il campo Destinazione e accodare il nome del programma Linux da lanciare in fondo al testo preesistente (fuori dalle virgolette) - ad esempio: "C:\Users\info\Desktop\Avvia xming e programma WSL.bat" firefox
  7. confermare con OK
  8. assegnare al collegamento un nome significativo, che indichi chiaramente quale programma Linux lancerà

Guida Bash Windows 10 (WSL): come eseguire programmi Linux/Ubuntu interfaccia grafica (GUI) - zShotVM_1553808009

Detto collegamento, una volta lanciato, avvierà automaticamente Xming prima e, subito dopo, il programma Linux indicato.

Affinché lo script funzioni correttamente è necessario che:

  1. Xming sia stato installato nel percorso di default, ovvero C:\Program Files (x86)\Xming\Xming.exe
  2. il programma Linux da avviare sia stato preventivamente installato come indicato ai passi precedenti

Passo 4: Mantenere tutto aggiornato

Se usate in maniera continuativa tali programmi (Firefox o qualsiasi altro browser web, in particolare) non dimenticatevi di installare periodicamente gli aggiornamenti di sicurezza! Farlo da shell Bash è semplicissimo:

  • sudo apt update (aggiorna la lista dei pacchetti disponibili)
  • sudo apt full-upgrade -y (scarica e installa le nuove versioni dei pacchetti)

Cosa aspettarsi?

In questo articolo abbiamo visto come eseguire le applicazioni ad interfaccia grafica native per Linux sfruttando il Sottosistema Windows per Linux di Windows 10.

Purtroppo, non tutti i programmi funzionano: l'editor Kate e il programma di fotoritocco Krita, ad esempio, non sono partiti correttamente sul mio sistema di test. È quindi necessario provare individualmente con i singoli software desiderati e... incrociare le dita.

Andare oltre: installare il desktop Ubuntu completo

Rimane ancora un'idea da sperimentare per i più intraprendenti: usare la tecnica appena proposta per eseguire un intero ambiente desktop (DE) all'interno di una finestra di Windows 10

Guida Bash Windows 10 (WSL): come eseguire programmi Linux/Ubuntu interfaccia grafica (GUI)

L'idea, lanciata su Github, ha raccolto un discreto seguito e alcuni utenti confermano di aver raggiunto il risultato. Il beneficio concreto, però, è discutibile: si finisce infatti per appesantire il sistema con un ambiente desktop aggiuntivo, quando basterebbe utilizzare il menu Start e quale collegamento ai programmi Linux più utilizzati per ottenere un risultato analogo in maniera molto più "leggera".

Ad ogni modo: io ci ho provato senza raggiungere i risultati sperati: chi volesse cimentarsi, trova qui la procedura passo passo (in inglese) che ho svolto, insieme agli errori che mi hanno bloccato.