Como posso adicionar um aplicativo ao gerenciador de janelas GNOME?

50

A documentação on-board do GNOME cobre apenas as coisas que qualquer um pode adivinhar facilmente. Eu tenho um aplicativo para o qual só posso iniciar a partir da linha de comando. Não que eu me importe em usar um terminal, mas ...

De qualquer forma, como adiciono o comando (e de preferência um bom logotipo) ao GNOME WM?

mart
fonte
Se você clicar com o botão direito do mouse, receberá um item "Editar menu"?
slm
não, não há menu de clique direito.
mart

Respostas:

88

No GNOME e em outros ambientes de área de trabalho compatíveis com freedesktop.org , como KDE e Unity , os aplicativos são adicionados aos menus ou shell da área de trabalho por meio de entradas da área de trabalho , definidas em arquivos de texto com a .desktopextensão (referidos como arquivos da área de trabalho ). Os ambientes da área de trabalho constroem menus para um usuário a partir das informações combinadas extraídas das entradas disponíveis na área de trabalho.

Os arquivos da área de trabalho podem ser criados em um dos dois locais:

  • /usr/share/applications/ para entradas da área de trabalho disponíveis para todos os usuários no sistema
  • ~/.local/share/applications/ para entradas da área de trabalho disponíveis para um único usuário

Pode ser necessário reiniciar o GNOME para que os novos aplicativos adicionados funcionem.

Por convenção, os arquivos da área de trabalho não devem incluir espaços ou caracteres internacionais em seus nomes.

Cada arquivo da área de trabalho é dividido em grupos , cada um começando com o cabeçalho do grupo entre colchetes ( []). Cada seção contém um número de pares de chave e valor , separados por um sinal de igual ( =).

Abaixo está um exemplo de arquivo da área de trabalho:

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Application Name
Comment=Application description
Icon=/path/to/icon.xpm
Exec=/path/to/application/executable
Terminal=false
Categories=Tags;Describing;Application

Explicação

  • [Desktop Entry]o Desktop Entrycabeçalho do grupo identifica o arquivo como uma entrada na área de trabalho
  • Type o tipo de entrada, os valores válidos são Application, LinkeDirectory
  • Encoding a codificação de caracteres do arquivo da área de trabalho
  • Name o nome do aplicativo visível em menus ou lançadores
  • Comment uma descrição do aplicativo usado nas dicas de ferramentas
  • Icon o ícone mostrado para o aplicativo em menus ou lançadores
  • Exec o comando usado para iniciar o aplicativo a partir de um shell.
  • Terminal se o aplicativo deve ser executado em um terminal, valores válidos são trueoufalse
  • Categories;lista separada por ponto e vírgula ( ) de categorias de menu nas quais a entrada deve ser exibida

Os argumentos da linha de comando na Execchave podem ser significados com as seguintes variáveis:

  • %f um único nome de arquivo.
  • %F vários nomes de arquivos.
  • %u um único URL.
  • %U vários URLs.
  • %d um único diretório. Usado em conjunto com %fpara localizar um arquivo.
  • %D vários diretórios. Usado em conjunto com %Fpara localizar arquivos.
  • %n um único nome de arquivo sem um caminho.
  • %N vários nomes de arquivos sem caminhos.
  • %k um URI ou nome de arquivo local do local do arquivo da área de trabalho.
  • %v o nome da entrada do dispositivo.

Observe que ~ou variáveis ​​de ambiente como $HOMEnão são expandidas nos arquivos da área de trabalho, portanto, qualquer executável referenciado deve estar no $PATHou referenciado por seu caminho absoluto.

Uma especificação completa de entrada da área de trabalho está disponível no GNOME Dev Center .

Scripts de lançamento

Se o aplicativo a ser iniciado exigir que determinadas etapas sejam executadas antes da chamada, você poderá criar um script de shell que inicie o aplicativo e aponte a entrada da área de trabalho para o script de shell. Suponha que um aplicativo precise ser executado a partir de um determinado diretório de trabalho atual. Crie um script de inicialização em um local adequado ( ~/bin/por exemplo). O script pode se parecer com o seguinte:

#!/bin/bash
pushd "/path/to/application/directory"
./application "$@"
popd

Defina o bit executável para o script:

$ chmod +x ~/bin/launch-application

Aponte a Execchave na entrada da área de trabalho para o script de inicialização:

Exec=/home/user/bin/launch-application
Thomas Nyman
fonte
Eu fiz isso, posso ver o ícone em aplicativos, mas quando clico no aplicativo não inicia, o cursor muda para um símbolo de carregamento por alguns segundos. Nenhuma mensagem de erro.
mart
@mart Você pode nos dizer qual aplicativo está tentando adicionar um iniciador?
Thomas Nyman
11
FTL - um jogo independente que comprei em algum lugar na web. A partir do console funciona.
1/13
11
O @mart <path>/.FTLapontaria para um arquivo oculto chamado .FTL, que não é o mesmo que ./FTL, que aponta para um arquivo chamado FTLno diretório atual. Você pode tentar iniciar FTLvia /full/path/path/to/FTLem um terminal para ver se obtém alguma saída de erro significativa. Por exemplo, se o executável procurar bibliotecas no diretório de trabalho atual, talvez seja necessário executar um script do iniciador que faça algo ao longo das linhas pushd <path>; ./FTL; popde aponte o Execespecificador no arquivo da área de trabalho para o script do iniciador.
Thomas Nyman
11
correção: funciona de dentro do diretório
mar
12

Muito boa resposta de Thomas Nyman.

O Gnome vem com a ferramenta GUI, gnome-desktop-item-editauxiliando na criação de arquivos * .desktop. Precisamos usá-lo na linha de comando ou criar um arquivo da área de trabalho para ele.

Instruções para fazer a aplicação Gnome de gnome-desktop-item-edit

  1. Abra as janelas do terminal e digite o seguinte comando:

    gnome-desktop-item-edit --crie-novo / home / [seu nome de usuário] /. local / share / applications

  2. Na janela aberta, preencha o seguinte: insira a descrição da imagem aqui

    Name: Gnome Applicaiton

    Command: gnome-desktop-item-edit --create-new /home/[your user name]/.local/share/applications

    Clique no ícone para selecionar um ícone diferente.

  3. Clique em OK para fechar as janelas

  4. Feche a janela do terminal

Testando recém-gerado Gnome Application

  1. Traço aberto
  2. Tipo Aplicação
  3. Você deve ver os dados Gnome Applicationinseridos antes
  4. Selecione
  5. Crie outro aplicativo
Dudi Boy
fonte
Isso funciona muito bem, obrigado. Existe alguma maneira de alterar em qual menu o novo aplicativo aparece? Mine apareceu em Applications-> Other
SteveP
-1

As respostas anteriores de Thomas Nyman e Dudi Boy são muito boas e detalhadas. Estou postando isso porque não encontrei uma resposta para a minha dúvida em outros posts e tive que pesquisar em problemas do git.

Depois de seguir os passos, como Thomas Nyman sugeriu, consegui fazer com que o ícone do meu programa fosse exibido no menu App. O problema aqui é que eu uso o Dash to Dock como barra lateral e não pude fixar o ícone como favorito, como outros ícones. Após a pesquisa, descobri que você precisa adicionar a linha StartupWMClass=ApplicationNameno .desktoparquivo. Depois disso, a opção para adicionar aos favoritos aparecerá clicando com o botão direito do mouse no ícone no Dash to Dock.

JonLord
fonte