Eu tenho um .desktop
aplicativo que executa um script de shell, esse script de shell executa um código python quando o aplicativo é clicado duas vezes e quero poder iniciá-lo de todos os diretórios do meu laptop e manter o ícone estável, mesmo que o diretórios da imagem ou ícone ou aplicativo foram alterados!
Como posso tornar meu aplicativo global?
Responder1
Como fica evidente na resposta sugerida por Zany_Zachary, os inicializadores /usr/share/applications
estão disponíveis para todos os usuários. Os iniciadores abaixo ~/.local/share/applications
estão disponíveis apenas para o usuário atual. Quando o inicializador estiver nesses locais, ele será selecionado pelo menu da área de trabalho ou pelo inicializador. O local /usr/share/applications
é um diretório usado pelo sistema de gerenciamento de software APT do sistema operacional, portanto, embora funcione, você não deve colocar seus .desktop
arquivos personalizados lá. Em vez disso, use a pasta/usr/local/share/applications
. Essa pasta não existe por padrão no Ubuntu, então pode ser necessário criá-la primeiro.
É assim que o termo "global" do seu título é mais facilmente compreendido. Porém, na sua pergunta, você sugere que em "global" você entenda também algo como "portátil", ou seja, deve continuar funcionando mesmo que o ícone ou aplicativo mude de localização. Ainda assim, você deve obedecer às convenções do sistema operacional onde colocar seu ícone ou executável. Portanto, não existe um iniciador "global" .desktop
que continue funcionando independentemente de onde você coloca o ícone ou o executável.
Existem limites nesta “portabilidade”. Por um lado, o nome do ícone ou do executável não pode ser alterado, porque o nome está codificado no .desktop
arquivo. Porém, você pode omitir o caminho do .desktop
arquivo, mas então terá que colocar o ícone e o executável em locais específicos pesquisados pelo sistema operacional.
O ícone
O ícone é definido no .desktop
arquivo da Icon=
linha.
Se você fornecer apenas o nome do ícone (sem a extensão), osistema operacional irá procurar ~/.icons
e ~/.local/share/icons
primeiro e, em seguida, pesquise nos diretórios de ícones de todo o sistema, principalmente em /usr/share/icons
e /usr/local/share/icons
. Um arquivo gráfico com extensão .png
ou .svg
em uma dessas pastas será selecionado pelo sistema de menus. Se nenhum arquivo gráfico correspondente for encontrado, o sistema reverterá para um ícone substituto padrão.
A aplicação
O executável é definido no .desktop
arquivo da Exec=
linha.
Também aqui, o sistema procurará caminhos predefinidos para um executável com o nome correspondente se nenhum caminho completo do arquivo for fornecido. Você pode ver as pastas e a ordem em que são pesquisadas com o echo $PATH
comando.
Responder2
Saudações!
Para tornar seu arquivo .desktop global, simplesmente:
Coloque-o em/usr/share/applications
Para apenas uma conta, coloque-a em/home/$USER/.local/share/applications
Infelizmente, você não pode fazer com que o ícone permaneça o mesmo quando o arquivo de imagem é movido. Eu recomendo criar uma pasta com o ícone do seu aplicativo. Coloque esta pasta em /usr/share
.