O que está acontecendo
As configurações de <property name="icon">
referem-se ao ícone da janela, não ao ícone do aplicativo. Pelo que entendi, o servidor de janelas do Ubuntu (X.org) os esmaga para um tamanho pequeno após o carregamento. Se você não se lembra do ano de 2009, eles costumavam ser usados nessa capacidade:
Usando ícones de aplicativos
O Ubuntu Unity usará esse formato de baixa resolução, se necessário. No entanto, ele geralmente busca ícones de aplicativos de acordo com o valor Icon=
de um lançador de aplicativos de uma determinada janela, chamado de "entrada de área de trabalho" ".
Se você é um desenvolvedor de aplicativos normal que planeja publicar o programa com o Portal do desenvolvedor de aplicativos , provavelmente pode parar de ler aqui. O serviço de empacotamento gratuito manipulará a gravação da entrada da área de trabalho do seu aplicativo e colocará seus ícones instalados na parte direita do sistema de arquivos. Se não ...
O âmago da questão
Como criar uma entrada na área de trabalho e fazer com que o Ubuntu combine sua janela do PyGTK com o ícone e o nome corretos do aplicativo já esteja documentado nesta pergunta . Mas onde você coloca ícones para obter o ícone certo?
Quando isso acontece, a resposta é bem misteriosa. De acordo com as especificações do freedesktop.org, os ícones são pesquisados e carregados por tamanho, tema de ícone e (quando necessário) localização. Os ícones podem ser instalados em vários prefixos diferentes, dependendo da fonte que os instalou. O Ubuntu "consulta" ícones por contexto.
As regras simples: use um nome de ícone exclusivo para seu aplicativo para evitar falsas correspondências com outros ícones. Coloque o (s) ícone (s) do seu aplicativo em um dos seguintes diretórios (ou um subdiretório dele):
<user prefix>/share/icons/<icon width>x<icon height>/apps/
<user prefix>/share/icons/scalable/apps/
<user_prefix>
é o caminho de instalação do seu aplicativo (será /usr
para pacotes instalados pelo gerenciador de pacotes, /usr/local/
para outro software instalado para todos os usuários e $HOME/.local
para instalações de usuário único). <icon width>
e <icon height>
(ou 'escalável' para SVGs) referem-se às dimensões do ícone. Se você criar muitas resoluções de ícones diferentes, o Ubuntu sempre encontrará e selecionará o caminho certo para qualquer contexto.
Como o ícone do aplicativo certo é exibido durante o desenvolvimento
-
Crie um ícone escalonável ou de alta resolução e coloque-o no subdiretório correto do diretório
share/
da sua casa do usuário. Por exemplo,myapp.svg
iria em$HOME/.local/share/icons/scalable/
-
Escreva uma entrada na área de trabalho que inclua o nome sem extensão de seu ícone. Por exemplo
[Desktop Entry] Name=My Application Exec=my_binary Icon=myapp
Coloque isso em
$HOME/.local/share/applications/
. Observe quemy_binary
deve ser um executável pesquisável em um dos seus diretórios$PATH
. -
Execute seu aplicativo (a) no Unity Dash, (b) na linha de comando usando o nome exato do seu
$PATH
executável [por exemplo, 'my_binary']. / p>
Se tudo isso parecer bobagem ...
Abra o seu navegador de arquivos e explore os diretórios /usr/share/applications/
e /usr/share/icons/
. Olhe em volta e você verá como os metadados e ícones do aplicativo funcionam no Ubuntu.