Pergunta

Como posso, em Java ou usar outra linguagem de programação, adicionar um novo grupo de programas no menu Aplicativos no KDE e no Gnome?

Estou testando com o Ubuntu e o Kubuntu 8. Colocando um arquivo .Menu simples em ~/.config/menus/aplicativos Merged funcionou em Kubuntu, mas o mesmo procedimento não faz nada no Ubuntu.

O conteúdo do meu arquivo é o seguinte:

<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
<Menu>
<Menu>
  <Name>My Program Group</Name>
  <Include>
   <Filename>shortcut.desktop</Filename>
  </Include>
</Menu>
</Menu>

Observe que o arquivo .DESKTOP está corretamente colocado em ~/.local/share/aplicativos.

PS: A pergunta original não especificou que eu queria uma solução de maneira programática.

Foi útil?

Solução

Talvez o XDG-Desktop-Menu faça isso? Ver man xdg-desktop-menu ou http://manpages.ubuntu.com/manpages/hardy/en/man1/xdg-desktop-menu.html .

Outras dicas

Obrigado, Oliver. Usei o XDG-DESKTOP-Menu e depois analisei sua saída. O arquivo de menu correto precisa nomear explicitamente o menu externo (aplicativos), como segue:

<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" 
    "http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd">
<Menu>
    <Name>Applications</Name>
<Menu>
    <Name>My Program Group</Name>
    <Include>
        <Filename>shortcut.desktop</Filename>
    </Include>
</Menu>
</Menu>

Isso funcionou bem em Kubuntu, Ubuntu e Fedora Core 9. Não podia fazer funcionar no OpenSuse.

Eu recomendo que você veja os padrões Freedesktop.org que cobrem isso. A lista atualizada está disponível aqui:

http://www.freedesktop.org/wiki/specifications/menu-spec

O mais recente é atualmente 1.0:

http://standards.freedesktop.org/menu-spec/1.0/

Os padrões Freedesktop.org são seguidos pelo GNOME, KDE e XFCE, para que funcione em qualquer distribuição.

No sistema de uso do GNOME -> Configurações -> Menu, basta escolher o novo menu ou a nova entrada.

Não tenho certeza do que você quis dizer exatamente com "No OpenSUSE, o arquivo .Directory é obrigatório ou o grupo do programa não aparece"; Geralmente, suponho que você precise ligar para o XDG-DESKTOP-Menu duas vezes (uma vez para o grupo de programas e uma vez para o próprio programa) e, portanto, você também deve fornecer dois arquivos. Diretório diferentes. Se o grupo de programas estiver vazio, faz sentido que a área de trabalho o esconda.

(Mas talvez eu tenha entendido completamente você aqui :-) E eu nunca usei o XDG-Desktop-Menu de qualquer maneira).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top