Su Ubuntu 20.04 il modo corretto per creare un collegamento sul desktop per qualsiasi applicazione non è copiare un’icona a caso, ma generare un file .desktop valido. È questo il meccanismo che GNOME usa per mostrare un lanciatore, assegnare un’icona, avviare un comando e trattarlo come un’applicazione vera e propria. Se il file è scritto bene, il collegamento funziona sia dal desktop sia dal menu applicazioni; se è scritto male, GNOME lo ignora o lo mostra come file generico.
Il punto chiave è semplice: il desktop non “contiene” l’applicazione, contiene un descrittore. Dentro ci metti nome, comando da eseguire, icona e alcune proprietà di base. Per questo il metodo è utile sia per programmi installati con il gestore pacchetti, sia per script locali, binari scaricati a mano o applicazioni avviabili con un comando specifico.
File .desktop: cosa fa davvero Ubuntu 20.04
Un lanciatore desktop in Ubuntu è un file di testo con sintassi INI-like. La sezione minima è [Desktop Entry]. Se manca, il file non viene interpretato come launcher. In pratica, il sistema legge il contenuto e decide se può essere presentato come applicazione avviabile. Questo vale anche quando lo metti nella cartella Desktop dell’utente, cioè in genere /home/nomeutente/Desktop o, in locale, ~/Desktop.
Ubuntu 20.04 con GNOME richiede anche una condizione spesso trascurata: i file sul desktop devono avere il permesso di essere eseguiti come lanciatore, altrimenti il file resta solo un documento. La parte più confusa per chi arriva da altri ambienti è questa: non basta creare il file, bisogna anche renderlo affidabile per il desktop environment.
Metodo pratico: creare un collegamento sul desktop per un’app qualsiasi
Prendiamo un esempio concreto: vuoi un collegamento per Firefox, ma il metodo vale identico per LibreOffice, VS Code, un client VPN, uno script bash o un binario custom. L’idea è creare un file con estensione .desktop sul desktop e inserire il comando corretto nel campo Exec.
-
Individua il comando reale dell’app. Se l’app è installata normalmente, spesso basta verificare il comando con cui si avvia dal terminale.
which firefox which libreoffice which code -
Crea il file launcher sul desktop.
nano ~/Desktop/firefox.desktop -
Inserisci una struttura minima corretta.
[Desktop Entry] Version=1.0 Type=Application Name=Firefox Comment=Browser web Exec=firefox %u Icon=firefox Terminal=false Categories=Network;WebBrowser; -
Salva il file e rendilo eseguibile.
chmod +x ~/Desktop/firefox.desktop -
Se GNOME non lo mostra subito come launcher, fai logout/login oppure aggiorna la vista del desktop. In molti casi basta riaprire il file manager o cliccare con il tasto destro e scegliere l’opzione per consentire l’avvio, se presente.
Se l’app usa argomenti specifici, li puoi inserire in Exec. Per esempio, un editor che apra direttamente una cartella o uno script che riceva un file. L’importante è ricordare che il campo Exec non è una shell completa: non va trattato come una riga bash con pipe, redirect e variabili complesse, a meno di incapsulare tutto in uno script esterno. Per un launcher pulito, meglio puntare a un comando semplice o a uno script wrapper.
Struttura minima consigliata di un launcher
Per evitare problemi, conviene rispettare alcuni campi standard. Non tutti sono obbligatori, ma quelli sotto coprono il 90% dei casi d’uso reali.
Type=Application: dice a GNOME che si tratta di un’applicazione avviabile.
Name: il nome visualizzato sul desktop e nel menu.
Exec: il comando da eseguire.
Icon: nome icona del tema oppure percorso assoluto a un file immagine.
Terminal:
falseper app grafiche,trueper script che devono aprire un terminale.
Un esempio più realistico per uno script locale è questo:
[Desktop Entry]
Version=1.0
Type=Application
Name=Backup personale
Comment=Avvia lo script di backup
Exec=/home/nomeutente/bin/backup.sh
Icon=/home/nomeutente/Immagini/icone/backup.png
Terminal=true
Categories=Utility;
In questo caso Terminal=true è sensato perché lo script può stampare log o richiedere input. Se invece il comando è grafico, lascia false. Se l’icona non viene caricata, il problema spesso non è il launcher ma il formato del file immagine o il percorso errato.
Come trovare il nome corretto dell’icona
In molti tutorial si scrive solo Icon=firefox e si spera che funzioni. Nella pratica è meglio distinguere due casi. Se usi un nome di tema, GNOME cerca l’icona nei percorsi standard. Se usi un file locale, devi indicare un percorso assoluto. Per esempio Icon=/home/nomeutente/Desktop/icone/firefox.png.
Per verificare le icone installate puoi ispezionare i file desktop già presenti nel sistema. Molte applicazioni hanno il loro launcher in /usr/share/applications/. Aprendolo trovi spesso il nome icona effettivo, il comando usato e altre opzioni utili. È un ottimo modo per copiare un modello funzionante invece di reinventare la sintassi.
Per esempio:
grep -R "^Icon=\|^Exec=\|^Name=" /usr/share/applications/firefox.desktop
Se il file esiste, puoi usarlo come riferimento. Se non esiste, l’app potrebbe essere installata in modo non standard, oppure il pacchetto potrebbe usare un nome diverso. In quel caso conviene cercare nell’output di dpkg -L o nella documentazione del vendor, se è software esterno.
Launcher per script personalizzati: il caso più utile
Il vero vantaggio del launcher desktop emerge con gli script. Invece di aprire il terminale ogni volta, puoi creare un’icona che avvia un task ricorrente: backup, sincronizzazione, apertura di un ambiente di lavoro, controllo VPN, montaggio di una share, avvio di un tool interno. Il metodo è identico, ma è qui che emergono gli errori più frequenti: permessi mancanti, path sbagliati, interpreter non corretto.
-
Verifica che lo script sia eseguibile.
chmod +x /home/nomeutente/bin/backup.sh -
Controlla lo shebang all’inizio del file.
#!/bin/bash -
Testa lo script da terminale prima di collegarlo al desktop.
/home/nomeutente/bin/backup.sh -
Solo dopo crea il file
.desktopconExecpuntato allo script.
Se lo script dipende da variabili d’ambiente, considera che il launcher non eredita sempre lo stesso contesto della tua shell interattiva. È un classico caso in cui “da terminale funziona, dal desktop no”. La soluzione pulita è spostare la logica in uno script wrapper che inizializza il contesto necessario, oppure usare percorsi assoluti e dipendenze esplicite.
Permessi e comportamento di GNOME in Ubuntu 20.04
Su Ubuntu 20.04 il desktop environment può bloccare o segnalare i file launcher se non sono marcati correttamente. Dopo aver creato il file, il comando più importante è chmod +x. Senza quel bit, il file resta un documento di testo. Con quel bit, GNOME lo considera un avvio applicazione, sempre che il contenuto sia sintatticamente valido.
Se il file è corretto ma non parte, controlla anche dove l’hai salvato. La cartella Desktop deve essere quella dell’utente corrente. Un file in /root/Desktop non è visibile al tuo account normale. Allo stesso modo, se lavori tramite sudo, puoi finire a creare il launcher con proprietario sbagliato. In caso di dubbio, verifica con:
ls -l ~/Desktop/firefox.desktop
file ~/Desktop/firefox.desktop
L’output atteso è un file leggibile dall’utente e riconosciuto come testo. Se il proprietario non è corretto, sistemalo con chown. Se il file è stato creato con encoding strano o terminazioni di riga non standard, può dare problemi marginali; in quel caso risalva il file con un editor semplice come nano o gedit.
Debug quando il collegamento non funziona
Quando il launcher non parte, conviene seguire una sequenza molto concreta. Prima si verifica il file, poi il comando, poi l’icona. È inutile inseguire il problema grafico se il comando già fallisce da shell.
-
Controlla la sintassi del file.
cat ~/Desktop/firefox.desktopAtteso: presenza di
[Desktop Entry],Type=Application,Exec=.... -
Verifica che il comando esista.
command -v firefoxAtteso: percorso assoluto, ad esempio
/usr/bin/firefox. -
Testa il comando esattamente come scritto in
Exec.firefox %uSe il launcher usa argomenti, prova la variante reale senza inventare sintassi non supportata dal file desktop.
-
Controlla il file manager o il desktop shell se il problema è visivo e non funzionale. A volte il file parte ma non mostra l’icona giusta, oppure compare un avviso di sicurezza che va confermato manualmente.
Un caso tipico è il comando che contiene spazi o caratteri speciali. In Exec i percorsi con spazi vanno gestiti con attenzione. Se vuoi evitare ambiguità, usa un wrapper script senza spazi nel nome, oppure mantieni il path in una directory semplice come /home/nomeutente/bin/. È una scelta banale ma riduce gli errori operativi.
Creare il collegamento tramite interfaccia grafica
In alcuni ambienti GNOME il file manager offre anche la possibilità di creare un collegamento visivamente, ma il comportamento varia a seconda delle estensioni installate e della configurazione. Per questo, quando serve affidabilità, il file .desktop resta il metodo preferibile. L’interfaccia grafica può essere comoda per un uso sporadico, ma il launcher testuale è più ripetibile, più facile da versionare e più semplice da correggere.
Se vuoi comunque passare dall’interfaccia, il flusso tipico è: creare il file, copiarlo nel desktop, aprirlo con un editor, salvare, impostare il permesso di esecuzione e confermare l’esecuzione dal desktop. Anche in questo caso il risultato finale è sempre lo stesso: un .desktop valido.
Best practice per non ritoccare il launcher ogni due giorni
Un launcher fatto bene non deve dipendere troppo dall’ambiente corrente. Usa percorsi assoluti, comandi verificabili e icone stabili. Se punti a uno script, versionalo insieme al file .desktop e mantieni entrambi nella stessa logica di deploy personale. Se cambi macchina, ti basta copiare il launcher e adattare solo i path locali.
Se il collegamento serve a un’app installata manualmente, conviene evitare riferimenti fragili a directory temporanee o versioni numerate. Meglio un symlink stabile, per esempio /opt/app/current che punta alla versione attiva, così il launcher non cambia a ogni upgrade. È una piccola disciplina che fa risparmiare tempo quando gestisci più tool o più workstation.
Infine, non confondere il launcher desktop con un collegamento al menu applicazioni. Il file .desktop può servire a entrambi, ma se lo vuoi solo sul desktop, basta posizionarlo nella cartella dell’utente e assicurarti che GNOME lo riconosca. Se lo vuoi anche nel menu, la collocazione in ~/.local/share/applications/ è spesso più adatta, soprattutto per applicazioni personalizzate o script che vuoi riusare spesso.
Esempio completo pronto da copiare
Questo esempio crea un collegamento per una generica applicazione grafica. Sostituisci il comando e l’icona con quelli reali del tuo caso.
cat > ~/Desktop/mia-app.desktop <<'EOF'
[Desktop Entry]
Version=1.0
Type=Application
Name=Mia App
Comment=Avvio rapido dell'applicazione
Exec=/usr/bin/mia-app
Icon=/home/nomeutente/Immagini/icone/mia-app.png
Terminal=false
Categories=Utility;
EOF
chmod +x ~/Desktop/mia-app.desktop
Dopo averlo creato, verifica tre cose: il file esiste, è eseguibile e il comando parte da terminale. Se questi tre punti sono veri, il problema residuo è quasi sempre nel desktop environment o nel percorso dell’icona. In quel caso il debug è molto più breve di quanto sembri, perché hai già escluso il livello applicativo.
Per un desktop Ubuntu 20.04 stabile, il principio resta questo: trattare il collegamento come un file di configurazione, non come una scorciatoia improvvisata. Più è pulito il launcher, meno tempo perdi quando devi spostarlo, copiarlo o correggerlo su un’altra macchina.
Commenti (0)
Nessun commento ancora.
Segnala contenuto
Elimina commento
Eliminare definitivamente questo commento?
L'azione non si può annullare.