Ícone do aplicativo PyGTK desfocado no Unity

Ícone do aplicativo PyGTK desfocado no Unity

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:

Imagem do ícone da janela

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á /usrpara pacotes instalados pelo gerenciador de pacotes, /usr/local/para outros softwares instalados para todos os usuários e $HOME/.localpara 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

  1. 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.svgentraria$HOME/.local/share/icons/scalable/

  2. 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 que my_binarydeve serum executável pesquisável em um de seus $PATHdiretórios.

  3. Execute seu aplicativo (a) no Unity Dash, (b) na linha de comando usando onome exatodo seu $PATHexecutá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.

informação relacionada