Como encontro as informações do .desktop para um dado binário?

4

Dado o caminho para um executável (digamos /usr/bin/gvim ), como posso encontrar o arquivo .nktop do Gnome para esse aplicativo?

Estou fuçando em Python, então uma resposta específica do Python seria muito útil.

    
por Erigami 12.02.2011 / 18:33

5 respostas

3

Se você quiser fazer isso programaticamente, use python-gmenu. Ele envolve a API libgnome-menu2 para Python.

Essa API permite iterar em todos os diretórios da área de trabalho que estão atualmente configurados e inclui quaisquer substituições ou modificações que o usuário personalizou. Então você apenas consulta cada arquivo para ver se a linha Exec corresponde ao que você espera.

Não encontrei nenhuma documentação para nenhuma biblioteca, mas o uso liberal de "import gmenu; dir (gmenu)" e a pesquisa /usr/include/gnome-menus/gmenu-tree.h devem ajudar.

    
por Michael Terry 13.02.2011 / 14:36
2

Se o seu pacote é instalado a partir do pacote (não da fonte), você pode usar (no Bash):

dpkg -L $(dpkg -S /usr/bin/pidgin | cut -f1 -d: ) | grep \.desktop$

No caso de gvim , não sai nada. Você tem outro problema, de fato, gvim é uma alternativa . O "verdadeiro" gvim pode ser vários programas. No meu computador, é /usr/bin/vim.gnome . Vamos tentar com isso. Isso não funciona ... porque não há .desktop no mesmo pacote que vim.gnome . De fato, neste caso complicado, o .desktop está em outro pacote comum a todas as interfaces gráficas do Vim: vim-gui-common

    
por shellholic 12.02.2011 / 20:15
1

Os arquivos .desktop da maioria das aplicações são armazenados em:

/usr/share/applications

alguns arquivos .desktop também podem ser armazenados em:

/usr/local/share/applications

ou (para configurações por usuário) em:

~/.local/share/applications
    
por Takkat 12.02.2011 / 19:25
1

Você pode pesquisar em todos os arquivos da área de trabalho. Por exemplo, para encontrar o arquivo da área de trabalho relacionado a gedit :

grep -li exec=gedit $(locate -r '\.desktop$')
    
por enzotib 12.02.2011 / 22:33
0

Você pode executar 1. sudo find /path_to_folder/ -iname *.desktop em geral. E 2. sudo find / -iname *.desktop no seu caso.

    
por 001neeraj 29.04.2013 / 10:39