Cosa sta succedendo
Problemi come questo riguardano il framework di abbinamento delle applicazioni di Unity. Per semplificare i dettagli tecnici, le finestre dei programmi e le applicazioni sono due cose separate per Ubuntu. Ubuntu deve "indovinare" quale applicazione possiede una determinata finestra. E a volte quell'ipotesi fallisce e appare un punto interrogativo nel programma di avvio.
L'errore potrebbe essere dovuto a:
- Un bug in BAMF (il framework di abbinamento delle applicazioni menzionato sopra).
- Una descrizione dell'applicazione errata (aka file '.desktop').
- La mancanza di una descrizione dell'applicazione a tutti. I file eseguibili che avviano Windows non hanno intrinsecamente questi metadati.
L'applicazione mostrata nella domanda (KeePass2) soffre di un problema di tipo 1 che è stato segnalato al tracker bug appropriato .
Esempi di problemi
Gli esempi seguenti sono tecnici, rivolti ai programmatori che desiderano che la propria applicazione venga visualizzata correttamente nel programma di avvio di Ubuntu.
Problema 3 - Nessuna descrizione dell'applicazione
Affinché un'applicazione si integri con Unity - vale a dire, sia ricercabile nel dash e collocata nel launcher - deve avere una voce desktop. Tali entrate sono poste nel /usr/share/applications/
, /usr/local/share/applications/
e $HOME/.local/share/applications/
(questi ultimi due essendo per software di terze parti, a livello di sistema e utente sola rispettivamente). Si concludono con .desktop
un'estensione e seguono questo formato di base:
[Desktop Entry]
Type=Application
Name=My Application's Name
Icon=/file/path/of/my/icon
Exec=/file/path/of/my/executable
Questa voce avvia un programma chiamando l' Exec
eseguibile. Ogni volta che quel programma visualizza una finestra o una finestra di dialogo, Unity noterà che il suo eseguibile "appartiene" a questa descrizione dell'applicazione e utilizzerà il dato Name
e Icon
nel programma di avvio.
Questo è un esempio di barebone. Le specifiche formali coprono molte funzionalità avanzate.
Problema 2 - Descrizione dell'applicazione errata
Supponiamo che my_app.desktop
esista in una directory dell'applicazione valida, ma:
/file/path/of/my/icon
non esiste nel filesystem.
/file/path/of/my/icon
non è un'immagine.
- la voce utilizza una sintassi errata o tag non validi.
In nessuno dei casi precedenti, Ubuntu non sarà in grado di elencare correttamente la finestra dell'applicazione nel programma di avvio.
Problema 1 - Un bug in BAMF
A partire da Ubuntu 11.10, BAMF presenta numerosi bug che impediscono la corretta corrispondenza delle applicazioni. Trappole comuni (temporanee) includono:
- Il
Exec
percorso è un collegamento simbolico anziché un file normale
- L'eseguibile è uno script che avvia l'eseguibile principale.
In questi casi, i programmatori non hanno altra scelta che usare una soluzione alternativa, come rimuovere l'astrazione del collegamento simbolico o collegarsi direttamente all'eseguibile. Nessuno di questi è richiesto dalla specifica della voce del desktop stessa.