Ricerca di fondo
Sto tentando di aggiornare la barra di avanzamento nel programma di avvio di Unity per una semplice python/Gtkapplicazione creata usando Quicklychiamato test; tuttavia, seguendo le istruzioni in questo video , non sono stato in grado di aggiornare correttamente la barra di avanzamento nel programma di Unityavvio . Nel video Unity Integration Quicklynon è stato utilizzato, quindi il modo in cui l'applicazione era strutturata era leggermente diverso e il codice utilizzato nel video non sembra funzionare correttamente senza modifiche in Quickly ubuntu-applicationun'applicazione modello predefinita .
Screenshots
Ecco uno screenshot dell'icona dell'applicazione così come è attualmente visualizzata in Unity Launcher.

Ecco uno screenshot del tipo di funzionalità della barra di avanzamento del programma di avvio di Unity che vorrei (sovrapposto all'icona della posta: wiki.ubuntu.com ).

Codice del progetto
Un .zipfile contenente i file di progetto è disponibile qui .
Comportamento atteso
Mi aspetto che il codice sopra riportato mostri una barra di avanzamento che è piena al 75% sovrapposta sull'icona per l'applicazione di prova in Unity Launcher , ma l'applicazione viene eseguita e non visualizza alcuna barra di avanzamento quando quickly runviene eseguito il comando .
Indagine sui problemi
Credo che il problema sia che non sto ricevendo correttamente un riferimento alla finestra principale dell'applicazione, tuttavia, non sono sicuro di come risolvere correttamente questo problema. Credo anche che la linea: self.launcher = Unity.LauncherEntry.get_for_desktop_id("test.destkop")potrebbe essere un'altra fonte di complicazioni perché Quicklycrea .desktop.infile piuttosto che .desktopfile ordinari , quindi non sono sicuro che ciò potrebbe causare problemi.
Forse, un'altra fonte del problema è che non capisco del tutto la differenza tra .desktope i .desktop.infile. Ha forse senso fare una copia del test.desktop.infile e rinominarlo test.desktope posizionarlo /usr/share/applicationsper get_for_desktop_id("test,desktop")fare riferimento al .desktopfile corretto ?
Link di ricerca correlati
Anche se non sono ancora chiaro sulla differenza tra i file .desktop e .desktop.in, ho fatto qualche ricerca sui file .desktop e ho trovato un paio di collegamenti:
- File delle voci del desktop (library.gnome.org)
- Directory di installazione dei file desktop (askubuntu.com)
- API Unity Launcher (wiki.ubuntu.com)
- File desktop: inserendo la tua applicazione nei menu desktop (developer.gnome.org)
- Specifiche del menu del desktop (standards.freedesktop.org)
modificare
Dopo aver eseguito python setup.py builde quindi /build/share/applicationsspostato e spostato il test.desktopfile creato ~/.local/share/applicationse infine eseguito quickly run, viene visualizzato solo un punto interrogativo per un'icona, senza barra di avanzamento visibile .

Modifica 2
Dopo ulteriori indagini sul .desktopfile creato , si scopre che la linea:
Icon=/usr/share/test/media/test.svgall'interno del .desktopfile puntava a un file icona chiamato test.svgche non esisteva.
Per risolvere questo problema, ho creato una nuova cartella denominata testin /usr/share/utilizzando il comando sudo mkdir teste poi creato un'altra all'interno della cartella di prova chiamata mediautilizzando il comando sudo mkdir media, e poi mi sono trasferito il test.svgfile di icona si trova nella mia directory del progetto rapidamente al test/data/media/test.svgdi /usr/share/test/media/. L' .svgicona dell'applicazione ora viene visualizzata correttamente nella barra di avvio di Unity e nella vista alt-tab, tuttavia non è ancora presente una barra di avanzamento visibile, come mostrato nella schermata seguente.

Modifica 3
Come ha sottolineato @dobey, c'era un errore di battitura nel codice del file TestWindow.py alla riga:
self.launcher = Unity.LauncherEntry.get_for_desktop_id("test.destkop"),
dove test.destkop, dovrebbe essere test.desktop.
Ho cambiato questo errore di battitura e non si sono verificate modifiche visibili quando l'applicazione è stata eseguita utilizzando quickly run. Tuttavia, dopo aver aggiunto la linea print('Integrating with launcher')al add_launcher_integration()terminale non c'era un output corrispondente quando l'applicazione era in esecuzione, indicando che il problema sembra essere che add_launcher_integration()non sembra essere chiamato correttamente all'avvio dell'applicazione.
Modifica 4
Dopo ulteriori indagini, si scopre che add_launcher_integration()in realtà viene chiamato all'avvio dell'applicazione. Con l'aggiunta della linea:
os.system("clear")
prima della linea
print("Integrating with launcher")
il messaggio "Integrazione con launcher" ora viene visualizzato in terminal.
Tuttavia, nella barra di avvio di Unity non è ancora visibile la barra di avanzamento .
Modifica 5
Dopo aver ricostruito il Quicklyprogetto di esecuzione python setup.py builde spostando il costruito .desktopfile all'interno del Quicklyprogetto situato al /build/share/applications/di ~/.local/share/applications, l'icona dell'applicazione e la barra di avanzamento ora visualizza correttamente nell'Unità launcher bar. Di seguito è possibile vedere uno screenshot dell'integrazione del programma di avvio.
