Arquivos desktop: colocando seu aplicativo nos menus do GNOME
Para executar aplicativos no GNOME, os usuários clicam em ícones em suas áreas de trabalho ou selecionam os aplicativos desejados a partir de um menu. Portanto, o primeiro passo para integrar um programa preexistente ao GNOME é registrá-lo no conjunto de aplicativos executáveis pelo usuário.
Ao contrário do Windows do Mac OS, no GNOME os menus são construídos automaticamente a partir de uma lista de aplicativos registrados. Cada aplicativo especifica um conjunto de categorias ao qual pertence, e o GNOME ordena e organiza os aplicativos. Esse mecanismo segue os padrões de menu e de entrada desktop do freedesktop.org.
Apesar disso ser comum em outros ambientes, criar um submenu específico para seu aplicativo é desencorajado. Em vez disso, forneça somente um item de menu para cada aplicativo distribuído. Itens extra, como arquivos de ajuda, LEIAMEs ou links para seu website devem ser embutidos no próprio aplicativo.
No GNOME e outros ambientes em conformidade com o freedesktop.org, um aplicativo é registrado no menu do ambiente através de uma entrada desktop, ou seja, um arquivo de texto com a extensão .desktop. Esse arquivo contém uma lista de informações sobre seu aplicativo. O ambiente usa as informações do arquivo .desktop para:
- Colocar o aplicativo no .
- Listar o aplicativo no diálogo Executar aplicativo.
- Criar lançadores apropriados no menu ou na área de trabalho.
- Associar o nome e a descrição do aplicativo.
- Usar o ícone apropriado.
- Reconhecer os tipos MIME dos arquivos que o aplicativo pode abrir.
Para adicionar uma entrada de menu para seu aplicativo, crie um arquivo .desktop. Ele deve ter um nome de arquivo único, e não existe limite de comprimento, então evite abreviaturas e fique à vontade para incluir nomes de marca. No entanto, não coloque espaços ou caracteres internacionais no nome de arquivo. Por exemplo, "foocorp-painter-pro.desktop" seria uma boa escolha para nome de arquivo, mas "fcpp.desktop" seria um nome ruim, assim como seria "FooCorp Painter Pro.desktop". O arquivo deve ser codificado com UTF-8, e deve seguir esse modelo:
[Desktop Entry] Encoding=UTF-8 Name=FooCorp Painter Pro Exec=foocorp-painter-pro Icon=foocorp-painter-pro Type=Application Categories=Application;
Os arquivos desktop contêm metadados sobre seu aplicativo, e desempenham um papel central na integração do programa com o GNOME e outros ambientes em conformidade com os padrões. O modelo apresentado aqui é o mais básico possível. O arquivo pode ser traduzido, de forma que o nome de seu aplicativo possa aparecer no idioma nativo do usuário.
Place this file in the /usr/share/applications directory so that it is accessible by everyone, or in ~/.local/share/applications if you only wish to make it accessible to a single user. Which is used should depend on whether your application is installed systemwide or into a user's home directory. GNOME monitors these directories for changes, so simply copying the file to the right location is enough to register it with the desktop. 1
Cada arquivo desktop deve seguir o mesmo formato. Um exemplo mínimo de um arquivo desktop pode ser conferido no Exemplo 1.1. O arquivo está dividido em seções, cada uma começando com o descritor da seção entre colchetes. Nesse exemplo, apenas uma seção foi mostrada, que é a seção essencial na integração de seu aplicativo com o ambiente. Dentro de cada seção, a parte da linha antes do sinal de igual é a chave, e a outra parte é o valor. Uma explicação de cada linha está disponível na Tabela 1.1.
Fora a primeira linha, que identifica o arquivo desktop, a ordem das linhas não é importante. No Exemplo 1.1, a linha Type=Application poderia ter sido a segunda linha, a quinta ou a última, e o resultado teria sido o mesmo.
No entanto, as chaves fazem diferença entre maiúsculas e minúsculas. Type=Application não é o mesmo que type=Application ou TYPE=Application.
[Desktop Entry] Type=Application Encoding=UTF-8 Name=Nome do Aplicativo de Exemplo Comment=Um aplicativo exemplar Exec=aplicativo Icon=aplicativo.png Terminal=false
Linha | Descrição |
---|---|
[Desktop Entry] | A primeira linha de cada arquivo desktop, e o cabeçalho da seção que identifica o bloco de pares chave-valor associado ao ambiente. Necessária para que o ambiente reconheça o arquivo corretamente. |
Type=Application | Tells the desktop that this desktop file pertains to an application. Other valid values for this key are Link and Directory. |
Encoding=UTF-8 | Descreve a codificação das entradas nesse arquivo desktop. |
Name=Sample Application Name | Nomes de seu aplicativo para o menu principal e quaisquer lançadores. |
Comment=A sample application | Descreve a aplicação. Usado como dica de ferramenta (tooltip). |
Exec=application | O comando que inicia esse aplicativo a partir de um shell. Pode ter argumentos. |
Icon=application.png | O nome do ícone associado ao aplicativo. |
Terminal=false | Descreve se o aplicativo deve ser executado em um terminal. |
- 1.1.1 Iniciando seu aplicativo
- 1.1.2 Idiomas estrangeiros
- 1.1.3 Referências
1.1.1 Iniciando seu aplicativo
Se seu aplicativo pode receber argumentos de linha de comando, você pode representá-los usando os campos mostrados na Tabela 1.2.
Adicione... | Para aceitar... |
---|---|
%f | um único arquivo. |
%F | múltiplos arquivos. |
%u | um único URL. |
%U | múltiplos URLs. |
%d | a single directory. Used in conjunction with %f to locate a file. |
%D | multiple directories. Used in conjunction with %F to locate files. |
%n | um único nome de arquivo sem caminho. |
%N | múltiplos nomes de arquivo sem caminho. |
%k | um URI ou nome de arquivo com a localização do arquivo desktop. |
%v | o nome da entrada Device. |
1.1.2 Idiomas estrangeiros
Para criar nomes e comentários localizados, são necessárias linhas adicionais para cada localidade. Por exemplo, para adicionar uma versão sueca do comentário, adicione a seguinte linha:
Comment[sv]=Exempelprogramnamn
Não existe limite para o número de traduções em um arquivo.
Manter uma longa lista de traduções em um único arquivo pode ser um incômodo. Existe um jeito melhor de criar essas traduções, com o pacote intltool. Leia as páginas do manual para intltool-extract e intltool-merge para mais informações.
Note that the ~/.local/share/applications location is not monitored by versions of GNOME prior to version 2.10 or on Fedora Core Linux, prior to version 2.8. These versions of GNOME follow the now-deprecated vfolder standard, and so desktop files must be installed to ~/.gnome2/vfolders/applications. This location is not supported by GNOME 2.8 on Fedora Core nor on upstream GNOME 2.10 so for maximum compatibility with deployed desktops, put the file in both locations.
Note that the KDE Desktop requires one to run kbuildsycoca to force a refresh of the menus.