Adicionando um novo grupo de aplicativos no Linux
-
05-07-2019 - |
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.
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).