Vamos ao primeiro artigo da série infinita “Como funciona?”, que deve agradar aos mais curiosos e pode, mais cedo ou mais tarde, acabar servindo para algo em algum momento.
Lembro-me de uma época em que muitos aplicativos instalados no GNOME não geravam uma entrada nos menus do KDE e vice-versa. Era uma coisa chata que acontecia por falta de padronização em um pequeno detalhe: a criação de entrada nos menus. Hoje em dia isso raramente acontece já que GNOME e KDE adotam um esquema muito semelhante para gerar tais entradas e, basicamente, o que funciona para um também vai funcionar para o outro. Continua valendo também a máxima de que a solução mais simples é, muitas vezes a melhor.
Cada software que opera com interface gráfica, para gerar uma entrada no menu, necessita de um arquivo com extensão .desktop e é esse arquivo que diz onde e como a aplicação será aberta, assim como contém as descrições e comentários sobre o software quando você passa o ponteiro do mouse por cima e vê um pequeno pop-up explicativo.
A sintaxe é bem simples e mesmo os menos experientes entendem logo o funcionamento do arquivo: o sistema operacional busca na pasta /usr/share/applications pelo arquivo .desktop correspondente ao software e usa seus parâmetros para gerar a entrada no menu.
Vejam o arquivo .desktop do pidgin:
[Desktop Entry]
Encoding=UTF-8
Name=Internet Messenger
Name[ar]=مرسال الإنترنت بِدْجِن
Name[es]=Cliente de mensajería de Internet Pidgin
Name[fr]=Messagerie internet Pidgin
Name[ja]=Pidgin インターネット・メッセンジャー
(...)
Name[pt_BR]=Mensageiro da Internet Pidgin
Exec=pidgin
Icon=pidgin
StartupNotify=true
Terminal=false
Type=Application
Categories=Network;InstantMessaging;X-Red-Hat-Base;
X-Desktop-File-Install-Version=0.15
Todo arquivo .desktop começa com [Desktop Entry] , a ordem da entrada dos parâmetros não importa mas é importante saber que os arquivos .desktop são case sensitive e pidgin é diferente de Pidgin.
Encoding=UTF-8 diz que a entrada no menu é codificada em UTF-8, isso é um padrão.
Name=Internet Messenger é o nome que aparece na entrada de menu no idioma genérico padrão (inglês sempre), mas caso seu idioma nativo esteja disponível, o arquivo é inteligente o bastante para ter uma lista de traduções que se ajustam ao idioma do sistema.
Exec=pidgin é o nome do executável. Se você digitar pidgin no terminal ele será aberto, então, aqui você ensina à entrada no menu como abrir o executável.
Icon=pidgin diz ao menu qual ícone usar. Ele procura dentro da pasta /usr/share/pixmaps e cria um vínculo entre o arquivo .desktop e o ícone escolhido. Também é possível digitar o caminho completo ao ícone, como por exemplo Icon=/usr/share/pixmaps/pidgin.png, mas a forma simples é preferível. Quando escrevemos Icon=pidgin o sistema já sabe que deve procurar dentro da pasta pixmaps pelo arquivo correspondente com extensão .PNG e, caso não encontre, procura por .SVG e, finalmente, .XPM. Interessantemente, o próprio arquivo .desktop assume a aparência do ícone ao qual se refere.
StartupNotify=true diz que o sistema deve notificar ao usuário da abertura do aplicativo. Uma ampulhetinha que gira ou algo parecido.
Type=Application dispensa comentários.
Categories=Network;InstantMessaging;X-Red-Hat-Base; diz exatamente onde seu ícone vai entrar. Games, Escritório, Internet: é aqui onde isso é definido e a existência ou não de um submenu depende do seu sistema. Alguns usam o submenu InstantMessaging, mas o Fedora não usa. Observe os ";" que separam as categorias.
Quer saber mais detalhes?
No próximo capítulo, como funciona o GRUB?
Posts relacionados:





Ótimo artigo…
você saberia onde fica o config pra adicionar categorias, deletar…ou seja, personalizar todo o menu do kde ou gnome?
Interessante, começou muito bem a série “Como fuciona?”.
Ótimo artigo, só uma observação, no parágrafo:
A sintaxe … arquivo: o sistema operacional busca na pasta /usr/share/applications pelo arquivo .desktop correspondente
Não é o sistema operacional que faz a busca, e sim o ambiente gráfico, no caso o kde ou gnome.
Perfeito, Alexandre, vou corrigir. E obrigado por apontar.
Que mania besta de ficar falando “pasta” ao invés de “diretório”… “Pasta” é coisa de sistema operacional tosco feito pra débil mental, “diretório” é característica de obras magníficas de engenharia de software.
Pasta, diretório… que mania besta de comentar inutilidades.