Não consegui fazer com que as coisas funcionassem com as outras respostas, mas consegui que as coisas funcionassem da seguinte maneira.
Isso foi testado e funciona nesses discos:
Ubuntu 14.04
Lubuntu 14.04
Ubuntu-Gnome 14.04
Faça o aplicativo Foo Wrapper
Para este exemplo, estou criando um wrapper para gedit chamado foo para fins de um exemplo completo de trabalho.
(1) Como sudo, crie um arquivo com este conteúdo:
gedit% f
(2) Salve como:
/ usr / bin / foo
(3) Torne-o executável:
sudo chmod + x / usr / bin / foo
Obtendo o aplicativo Foo para aparecer no menu e é um ícone
(1) Crie a imagem do aplicativo. Gimp ou Inkscape são excelentes programas para isso. Depois de criar a imagem, exporte-a como um png ou svg.
(2) Nomeie sua imagem. O nome da imagem deve ser o mesmo nome que você usa para iniciar seu aplicativo na linha de comando. O aplicativo neste exemplo é chamado: foo. Então o nome correto seria foo.png ou foo.svg.
(3) Copiar imagem para:
/usr/share/icons/foo.svg
(4) Criar entrada na área de trabalho. Abra o gedit, o leafpad ou o seu IDE. Crie um novo documento com esses dados:
[Desktop Entry]
Exec=foo %f
Icon=foo
Terminal=false
Type=Application
Categories=Office;
StartupNotify=true
MimeType=text/foo
Name=Foo
GenericName=Foo
Comment=Compose, Edit, and View Foo Documents
Anote as teclas Exec, Icon e MimeType:
Exec :% f é adicionado após o nome do executável. Isso deve estar lá, portanto, quando um usuário clica duas vezes em um documento foo, o sistema executará o aplicativo foo e enviará esse caminho de documento foo para o aplicativo por meio do argumento% f.
Ícone : apenas o nome é necessário. Não obtive bons resultados ao usar caminhos absolutos.
MimeType : text / foo. texto é o chamado 'tipo de conteúdo'. foo é o nome da aplicação. Essa convenção de mapeamento deve ser seguida nas outras etapas. Por exemplo, você não quer usar o aplicativo / foo em outra etapa. Ao fazer isso, você não manterá o tipo de conteúdo consistente para o foo e as coisas falharão.
(5) Salve este arquivo como:
foo.desktop
O nome do arquivo é o nome do nome de inicialização do seu aplicativo e ele deve ter a área de trabalho da extensão. Agora, deve ser copiado para:
/usr/share/applications
Neste ponto, você verá seu aplicativo na categoria Office no menu e seu ícone também ficará visível.
Dar ao seu aplicativo os documentos do seu próprio ícone
(1) Crie um arquivo xml mime com este conteúdo:
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info" type="text/foo">
<mime-type type="text/foo">
<magic>
<match type="string" offset="2" value="0foomagic"/>
</magic>
</mime-type>
</mime-info>
Tome nota do mapeamento do tipo de conteúdo: ambos são text / foo.
Você tem duas opções quando deseja que um documento personalizado obtenha seu ícone. (1), o sistema procurará por suas extensões e dará a ele um ícone baseado na extensão. (2) o sistema irá procurar por uma string mágica em um deslocamento específico no arquivo. Eu estou escolhendo mágica, porque eu não prefiro ver extensões em meus nomes de arquivos no gerenciador de arquivos.
Para usar magia, eu salvo todos os meus documentos como arquivos json. É um protocolo de armazenamento universal, então funciona bem para mim. Quando eu salvo o arquivo, classifico as chaves em ordem alfabética, o que faz com que a chave mágica apareça como a primeira chave do arquivo. Isso acontece porque eu coloquei um zero como o primeiro caractere de "0foomagic", e me certificarei de que nenhuma outra chave jamais será feita em meus documentos que atrapalhe isso.
Referindo-se a esta linha no xml acima,
<match type="string" offset="2" value="0foomagic"/>
um arquivo json tem dois caracteres antes de atingir minha chave mágica chamada 0foomagic. Então eu defino o deslocamento para 2.
Se você preferir usar uma extensão, basta remover a entrada mágica e substituí-la por:
<glob pattern="*.foo"/>
onde .foo é a extensão do seu documento de inscrição.
(2) Atualize o banco de dados Mime com este comando:
sudo update-mime-database /usr/share/mime
(3) Os ícones que serão exibidos para documentos personalizados precisam ser nomeados como uma maneira especial de trabalhar. Eles devem ser mapeados com o tipo de conteúdo. Crie um ícone de documento e nomeie-o com a convenção de tipo de conteúdo mapeada mencionada anteriormente (espera que traço seja usado em vez de barra):
text-foo.svg
text é o tipo de conteúdo e foo é o nome do seu aplicativo, como antes.
Você precisará copiar este ícone para qualquer tema que estiver usando. Qualquer tema que não seja copiado não exibirá seu documento foo com text-foo.svg.
Os temas são configurados de duas formas diferentes; você acabará com mais trabalhos com alguns temas, por exemplo:
Para o Gnome Theme, você só precisará copiar text-foo.svg para um lugar: / usr / share / icons / gnome / escalável / mimetypes /
Mude para o tema gnome e, em seguida, termine com este passo.
Mas, por exemplo, se você usar o tema hicolor, terá mais trabalho a fazer. Você deve criar um tamanho de ícone para cada um desses diretórios que o tema exige, por exemplo:
/usr/share/icons/hicolor/16x16/mimetypes/
/usr/share/icons/hicolor/22x22/mimetypes/
...
etc, etc.
Agora que você copiou os ícones, a base de dados do ícone deve ser atualizada. Eu notei dois comandos para isso (gtk-update-icon-cache e gtk-update-icon-cache3.0), apenas chamo ambos e não notei nenhum problema.Eles devem ser chamados em qualquer diretório de tema ao qual você tenha adicionado ícones.
Se você adicionou ao tema gnome, então:
sudo gtk-update-icon-cache /usr/share/icons/gnome/
Se você adicionou ao tema hicolor, então:
sudo gtk-update-icon-cache /usr/share/icons/hicolor
Agora, mais uma coisa a fazer, e você deve ver as coisas funcionando sem fazer login e logout. Atualize a base de dados da área de trabalho:
sudo update-desktop-database
Teste Foo
Como sobrecarregaria essa resposta para criar, peça para você criar o arquivo json, apenas use foo, o wrapper gedit, para fazer um foo doc com o 0foomagic dentro dele.
(1) Digite foo na linha de comando e você verá o lançamento do gedit.
(2) No arquivo de texto vazio no gedit, adicione dois caracteres e, em seguida, a sequência mágica:
xx0foomagic
(3) Salve e feche o gedit. Agora olhe dentro do gerenciador de arquivos e você verá que seu novo documento possui o ícone text-foo.svg. Clique duas vezes nele e foo irá abri-lo. Presto! Isso é magia do freedesktoporg!
Há muitas outras coisas que você pode aprender sobre esse processo, mas isso, no mínimo, fará com que você use seus próprios ícones de documento de lançamento de aplicativos no Ubuntu.
Por favor, contribua para esta resposta ou crie uma nova resposta se você tiver a melhor prática maneira de fazê-lo.