KMenuEdit, Alacarte, freedesktop.org - Como funcionam?

Na minha estréia aqui no VOL, venho escrever sobre como funciona e quais arquivos/diretórios fazem parte da configuração dos menus baseados no freedesktop.org.

[ Hits: 22.822 ]

Por: Guilherme Maluf em 07/03/2008


Como funciona?



A estrutura do menu é feita para permitir que qualquer programa, feito por mim ou por você, seja incluído no menu do sistema. Para isso a informação sobre cada item, seja ele um submenu ou uma aplicação, é armazenada em um arquivo *.directory e *.desktop, respectivamente. Então um outro arquivo XML(*.menu) define como os itens do menu serão organizados, layout, inclusão de itens, submenus e menus adicionais.

Diretórios:

/etc/xdg/menus/
Contém os arquivos XML necessários para a estruturação do menu.

/etc/xdg/menus/applications-merged/
Por convenção é o diretório para incrementar menus feitos por

/usr/share/applications/
Contém os arquivos *.desktop que armazenam as informações de cada aplicativo do menu.

/usr/share/desktop-directories/
Contém os arquivos *.directory que armazenam as informações dos menus e submenus

Arquivos:

Cada item do menu possui um arquivo para suas definições, esses arquivos são chamados de "desktop entry", ou entrada de desktop. Por exemplo, o submenu Internet no menu do KDE, é referenciado pelo arquivo /usr/share/desktop-directories/kde-internet.directory.

[Desktop Entry]
Encoding=UTF-8
Type=Directory
Name=Internet
Name[pt_BR]=Programas para Internet
Icon=package_network

Nesse arquivo existem os campos que definem as desktop entry, as chaves fazem referência a localidade, ou seja, nesse exemplo o nome do menu Internet será "Programas para Internet" no Brasil e Internet para as outras localidades.

Os campos Name e Type são essenciais para as entradas tanto de .directory e .desktop.

Type define se o arquivo será para uma Aplicação(Type=Application), submenu ou diretório(Type=Directory) ou link(Type=Link).

Outros campos:
  • Version= Versão
  • GenericName[LOCALIDADE]= Nome Genérico
  • Comment[LOCALIDADE]= Comentários
  • OnlyShowIn=KDE;XFCE;
  • NotShowIn=GNOME;

    Os campos OnlyShowIn e NotShowIn devem ser seguidos de lista dos ambientes separados por ponto-e-vírgula.

  • NoDisplay=true / false;
  • Icon=caminho_do_arquivo;
  • Hidden=true / false;
  • Exec= programa a ser executado, possível adicionar parâmetros;
  • Path= caminho do programa, só para Type=Application;
  • Category= classificação dos itens de menu;
  • MimeType= os tipos de arquivos suportados pela aplicação;
  • URL= URL para Type=Link.

O campo Category é uma lista de palavras separadas por ponto-e-vírgula que classifica cada item de menu. Por exemplo, uma entrada para um player de música baseado na biblioteca QT poderia ter o campo Category da seguinte forma:

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Player XYZ
Icon=/usr/share/icons/playerxyz.png
NotShowIn=KDE;
Category=Qt;AudioVideo;Player

Provavelmente esse item será alocado no campo "Som & Video".

Lista das principais categorias:

AudioVideo
Audio
Video
Development
Education
Game
Graphics
Network
Office
Settings
System
Utility

Lista de chaves das entradas de desktop:
Lista de todas as categorias:
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Como funciona?
   3. Formato dos arquivos XML(*.menu)
   4. Exemplos
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Controle de versão usando Git integrado ao Redmine

Otimizando seu web server com Apache2 + Lighttpd

Openfire integrado em uma floresta Active Directory

Montagem de Cluster Beowulf

Adicionando suporte ao Layer7 no CentOS 5.3

  
Comentários
[1] Comentário enviado por tenchi em 07/03/2008 - 13:27h

Cara, muito interessante e esclarecedor este artigo.
Eu já tinha uma vaga noção sobre esta padronização, mas nunca havia me interessando em pesquisar mais sobre.
Pros favoritos!

[2] Comentário enviado por InFog em 08/03/2008 - 00:33h

Muito bom, gostei bastante. É muito útil e facilita na hora de criar aplicações que ficarão disponíveis para todos os usuários =)

InFog

[3] Comentário enviado por juliaojunior em 08/03/2008 - 02:11h

muito bom!!! foi para os favoritos :)

[4] Comentário enviado por FelipeAbella em 11/03/2008 - 14:10h

Ótimo artigo! Estava procurando por isso.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts