Eu tenho um ícone de 128x128 referenciado no arquivo glade da janela principal como <property name="icon">../media/my-icon.svg</property>
.
Eu tentei, tanto com svg quanto com png, mas sempre fica muito borrado no alternador de aplicativos do Ubuntu (Alt + Tab).
Percebi o mesmo ao criar um aplicativo a partir de um modelo usando rapidamente, o logotipo do Ubuntu também fica muito desfocado.
Alguma ideia de por que isso pode acontecer?
Responder1
O que está acontecendo
As <property name="icon">
configurações referem-se ao ícone da janela, não ao ícone do aplicativo. Pelo que entendi, o servidor de janelas Ubuntu (X.org) os reduz a um tamanho minúsculo após o carregamento. Se você não se lembra do ano de 2009, eles costumavam ser usados nesta capacidade:
Usando ícones de aplicativos
O Ubuntu Unity usará este formato de baixa resolução, se necessário. Porém geralmente busca ícones de aplicativos de acordo com o Icon=
valor deo inicializador de aplicativos de uma determinada janela, chamado de "entrada da área de trabalho".
Se você é um desenvolvedor de aplicativos normal que planeja publicar seu programa como Portal do desenvolvedor de aplicativos, você provavelmente pode parar de ler aqui. O serviço de empacotamento gratuito cuidará da gravação da entrada da área de trabalho do seu aplicativo e da colocação dos í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 corresponda à janela PyGTK com o ícone e nome corretos do aplicativojá está documentado nesta questão. Mas onde você realmentelugarícones para exibir o correto?
Acontece que a resposta é bastante misteriosa. De acordo com as especificações do freedesktop.org, os ícones são pesquisados e carregados por tamanho, tema do ícone e (quando necessário) localização. Os ícones podem até ser instalados em diversos prefixos diferentes dependendo da fonte que os instalou. Ubuntu "consulta" ícones por contexto.
As regras simples: use um nome de ícone exclusivo para seu aplicativo para evitar correspondências falsas com outros ícones. Coloque o(s) ícone(s) do seu aplicativo em um dos seguintes diretórios (ou em um subdiretório):
<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 outros softwares instalados 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á a correta para qualquer contexto.
Obtendo o ícone do aplicativo correto para exibir durante o desenvolvimento
Crie um ícone escalonável ou de alta resolução e coloque-o no subdiretório correto do
share/
diretório inicial do usuário. Por exemplo,myapp.svg
entraria$HOME/.local/share/icons/scalable/
Escreva uma entrada na área de trabalho que inclua o nome não estendido do 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 serum executável pesquisável em um de seus$PATH
diretórios.Execute seu aplicativo (a) no Unity Dash, (b) na linha de comando usando onome exatodo seu
$PATH
executável [por exemplo, 'my_binary'].
Se tudo isso parece bobagem...
Abra seu navegador de arquivos e explore os diretórios /usr/share/applications/
e arquivos /usr/share/icons/
. Dê uma olhada e você entenderá como os metadados e ícones de aplicativos funcionam no Ubuntu.