Perché alcune applicazioni aperte appaiono come "punti interrogativi" nell'Unità di avvio di Unity?

22

Sto riscontrando un problema con un paio di programmi che hanno unità di avvio in unità, ma poi creano un'icona separata dopo il lancio. È possibile per il launcher tenere traccia delle finestre che genera per organizzare meglio? Oppure si tratta di un bug in Unity stesso?

Potrebbe non essere importante, ma questo programma specifico è un programma mono e l'icona generata è elencata come pannello.

    
posta Andrew Redd 26.10.2011 - 19:01

3 risposte

23

Cosa sta succedendo

Problemi come questo si riferiscono al framework di corrispondenza delle applicazioni di Unity. Per semplificare i dettagli tecnici, le finestre di programma e le applicazioni sono due cose separate per Ubuntu. Ubuntu ha bisogno di "indovinare" quale applicazione possiede una determinata finestra. E a volte quell'ipotesi non riesce e viene visualizzato un punto interrogativo nel programma di avvio.

L'errore potrebbe essere dovuto a:

  1. Un bug in BAMF (il framework di corrispondenza dell'applicazione sopra menzionato).
  2. Una descrizione dell'applicazione (aka "file .desktop") difettosa
  3. La mancanza di qualsiasi descrizione dell'applicazione. 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 bug tracker appropriato .

Esempi di problemi

Gli esempi qui sotto sono tecnici, rivolti ai programmatori che vogliono che le loro applicazioni vengano visualizzate correttamente nel launcher di Ubuntu.

Problema 3 - Nessuna descrizione dell'applicazione

Affinché un'applicazione si integri con Unity, ovvero sia ricercabile in Dash e posta nel launcher, è necessario avere una voce desktop. Tali voci sono inserite in /usr/share/applications/ , /usr/local/share/applications/ e $HOME/.local/share/applications/ (le ultime due sono rispettivamente per software di terze parti, a livello di sistema e solo per utente). Finiscono con un'estensione .desktop 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'eseguibile Exec . Ogni volta che quel programma visualizza una finestra o una finestra di dialogo, Unity noterà che il suo eseguibile "appartiene" alla descrizione di questa applicazione, e usa il dato Name e Icon nel launcher.

Questo è un esempio di barebone. La specifica formale copre 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 launcher.

Problema 1 - Un bug in BAMF

A partire da Ubuntu 11.10, BAMF ha un numero di bug che impedisce la corretta corrispondenza delle applicazioni. Trappole comuni (temporanee) includono:

  • Il percorso Exec è un link simbolico anziché un file normale
  • L'eseguibile è uno script che avvia l'eseguibile principale.

In questi casi, i programmatori non hanno altra scelta che utilizzare una soluzione alternativa, come la rimozione dell'astrazione del collegamento simbolico o il collegamento diretto con l'eseguibile. Nessuno di questi è richiesto dalla specifica della voce desktop stessa.

    
risposta data Jjed 07.11.2011 - 03:12
1

La finestra può essere abbinata all'applicazione solo se è stata impostata la proprietà WM_CLASS. Per fare ciò in X11 usi:

XSetClassHint( display, window, &class_hints );

Devi passare un puntatore a una struttura XClassHint con campo 'res_name' e 'res_class'.

    
risposta data Bram 10.08.2013 - 08:14
-1

Ho avuto alcuni problemi con 16.04 incluse le icone in grigio e talvolta il touchpad diventava irregolare (Acer V15 nitro) anche il software center (forse anche altre icone) non si apriva dall'icona (solo da un comando di terminale) . Ho trovato una raccomandazione da qualche parte per disinstallare e reinstallare il software gnome. Da quando l'ho fatto, l'intero sistema è stato stabile al 100%, non ha più icone grigie e funziona perfettamente. All'inizio ho notato un po 'di paura quando ho riavviato dopo questa modifica - molti messaggi di sistema al riavvio - quindi fallo a tuo rischio.

sudo apt-get autoremove gnome-software && sudo apt-get install gnome-software
    
risposta data Steve 21.08.2016 - 09:50

Leggi altre domande sui tag