Pesquisa de Antecedentes
Estou tentando atualizar a barra de progresso no iniciador do Unity para um python/Gtkaplicativo simples criado usando o Quicklychamado test; no entanto, seguindo as instruções deste vídeo , não consegui atualizar com êxito a barra de progresso no Unityiniciador . No vídeo do Unity Integration, Quicklynão foi usado; portanto, a maneira como o aplicativo foi estruturado era um pouco diferente, e o código usado no vídeo parece não funcionar corretamente sem modificação em um Quickly ubuntu-applicationaplicativo de modelo padrão .
Screenshots
Aqui está uma captura de tela do ícone do aplicativo, conforme exibido no Unity Launcher.

Aqui está uma captura de tela do tipo de funcionalidade da barra de progresso do iniciador do Unity que eu gostaria (sobreposta no ícone do correio: wiki.ubuntu.com ).

Código do projeto
Um .ziparquivo contendo os arquivos do projeto pode ser encontrado aqui .
Comportamento esperado
Eu esperaria que o código acima mostrasse uma barra de progresso 75% completa sobreposta no ícone do aplicativo de teste no Unity Launcher , mas o aplicativo é executado apenas e não exibe nenhuma barra de progresso quando o comando quickly runé executado.
Investigação de Problemas
Acredito que o problema é que não estou obtendo uma referência adequada à janela principal do aplicativo, no entanto, não tenho certeza de como corrigir esse problema corretamente. Eu também acredito que a linha: self.launcher = Unity.LauncherEntry.get_for_desktop_id("test.destkop")pode ser outra fonte de complicação porque Quicklycria .desktop.inarquivos em vez de .desktoparquivos comuns , então não tenho certeza se isso também pode estar causando problemas.
Talvez, outra fonte do problema seja que eu não entendo completamente a diferença entre .desktope .desktop.inarquivos. Será que faz sentido fazer uma cópia do test.desktop.inarquivo e renomeá-lo test.desktope colocá-lo /usr/share/applicationsem ordem para get_for_desktop_id("test,desktop")fazer referência ao .desktoparquivo correto ?
Links de pesquisa relacionados
Embora ainda não esteja claro a diferença entre os arquivos .desktop e .desktop.in, pesquisei sobre os arquivos .desktop e deparei com alguns links:
- Arquivos de entrada da área de trabalho (library.gnome.org)
- Diretório de instalação de arquivos da área de trabalho (askubuntu.com)
- API do Unity Launcher (wiki.ubuntu.com)
- Arquivos da área de trabalho: colocando seu aplicativo nos menus da área de trabalho (developer.gnome.org)
- Especificação de menu da área de trabalho (standards.freedesktop.org)
Editar
Depois de executar python setup.py builde, em seguida, navegar /build/share/applicationse mover o test.desktoparquivo criado para ~/.local/share/applications, e finalmente executar quickly run, apenas um ponto de interrogação para um ícone está sendo exibido, sem barra de progresso visível .

Editar 2
Após uma investigação mais aprofundada do .desktoparquivo criado , verifica-se que a linha:
Icon=/usr/share/test/media/test.svgdentro do .desktoparquivo estava apontando para um arquivo de ícone chamado test.svgque não existia.
A fim de resolver este problema, eu criei uma nova pasta chamada testem /usr/share/utilizar o comando sudo mkdir teste, em seguida, criou um outro dentro da pasta da pasta de teste chamado mediausando o comando sudo mkdir media, e depois me mudei o test.svgarquivo de ícone localizado no meu diretório de projeto rapidamente em test/data/media/test.svgpara /usr/share/test/media/. O .svgícone do aplicativo agora é exibido corretamente na barra do iniciador do Unity e na visualização da guia alt, no entanto , ainda não existe uma barra de progresso visível, como mostra a captura de tela abaixo.

Editar 3
Como @dobey, apontou, houve um erro de digitação no código do arquivo TestWindow.py na linha:
self.launcher = Unity.LauncherEntry.get_for_desktop_id("test.destkop"),
onde test.destkopdeveria estar test.desktop.
Alterei esse erro de digitação e nenhuma alteração visível ocorreu quando o aplicativo foi executado quickly run. No entanto, depois de adicionar a linha print('Integrating with launcher')para add_launcher_integration()não havia saída correspondente no terminal quando o aplicativo foi executado, indicando que o problema parece ser que add_launcher_integration()não parece ser chamado corretamente quando o aplicativo é iniciado.
Editar 4
Após uma investigação mais aprofundada, acontece que add_launcher_integration()é chamado de fato quando o aplicativo é iniciado. Com a adição da linha:
os.system("clear")
antes da linha
print("Integrating with launcher")
a mensagem "Integrando ao iniciador" agora é exibida no terminal.
No entanto, ainda não há uma barra de progresso visível na barra do iniciador do Unity .
Editar 5
Depois de reconstruir o Quicklyprojeto executando python setup.py builde movendo o .desktoparquivo construído dentro do Quicklyprojeto localizado em /build/share/applications/para ~/.local/share/applications, o ícone do aplicativo e a barra de progresso agora são exibidos corretamente na barra do iniciador do Unity. Uma captura de tela da integração do iniciador pode ser vista abaixo.
