
Eu queria saber como o Ubuntu é capaz de descobrir o nome adequado de um aplicativo. Por exemplo, quando você seleciona Open with -> Other application
no menu de contexto, esta lista é apresentada a você.
Como um desenvolvedor ensina ao Ubuntu o nome de seu aplicativo e como outro desenvolvedor pode recuperar o nome de um aplicativo do sistema? Não preciso de código real, estou apenas interessado no lado conceitual das coisas.
Responder1
Isso é especificado em um aplicativoarquivo de entrada da área de trabalho. Os arquivos de entrada da área de trabalho são inicializadores do aplicativo (o mesmo formato de arquivo dos inicializadores que você pode criar em sua área de trabalho) que também contêm vários metadados. Quando um aplicativo é instalado, esses arquivos de entrada da área de trabalho são colocados em /usr/share/applications e acho que seu conteúdo também é armazenado em cache para melhorar a velocidade.
O dado importante definido aqui é a lista de tipos MIME que o aplicativo pode abrir. Isto é definido na chave 'MimeType' no arquivo de entrada da área de trabalho. Por exemplo, o GIMP tem o seguinte em sua entrada na área de trabalho:
MimeType=application/postscript;application/pdf;image/bmp;image/g3fax;image/gif;image/x-fits;image/pcx;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-psd;image/x-sgi;image/x-tga;image/x-xbitmap;image/x-xwindowdump;image/x-xcf;image/x-compressed-xcf;image/tiff;image/jpeg;image/x-psp;image/png;image/x-icon;image/x-xpixmap;image/svg+xml;image/x-wmf;
Isso especifica uma lista de tipos de arquivos que o GIMP pode abrir.
O nome do aplicativo é especificado com a chave 'Nome', por exemplo.
Name=GIMP Image Editor
Como você pode ver, existem ícones próximos aos nomes. Eles também são especificados no arquivo de entrada da área de trabalho como um nome de ícone (para o qual o arquivo correto é procurado no tema do ícone) ou um caminho de arquivo de ícone. O GIMP tem o seguinte:
Icon=gimp
Na caixa de diálogo 'Abrir com -> Outro aplicativo', os Aplicativos Recomendados são os aplicativos que especificam que são capazes de abrir o tipo de arquivo e os Outros Aplicativos são aqueles que não o fazem.
Depois de escolher o aplicativo, o gerenciador de arquivos procura como executar o aplicativo para abrir o(s) arquivo(s). Ele procura a tecla ‘Exec’ na entrada da área de trabalho. O GIMP possui a seguinte chave Exec:
Exec=gimp-2.6 %U
Isso significa que o comando:
gimp-2.6 %U
será executado para abrir o(s) arquivo(s) e %U
será substituído por uma lista de URLs (normalmente file://urls) representando os arquivos que foram selecionados para abertura. Além de '%U', o aplicativo pode usar '%u' para uma única URL ou '%f'/'%F' para caminhos de arquivo únicos/múltiplos.
Responder2
Isso é muito fácil. Existem arquivos .desktop que contêm estas informações:
[Desktop Entry]
Name=Image Viewer
Comment=Browse and rotate images
Exec=eog %U
Type=Application
Categories=GNOME;GTK;Graphics;RasterGraphics;Viewer;
MimeType=image/bmp;image/gif;image/jpeg;image/jpg;image/pjpeg;image/png;image/tiff;image/x-bmp;image/x-gray;image/x-icb;image/x-ico;image/x-png;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-xbitmap;image/x-xpixmap;image/x-pcx;image/svg+xml;image/svg+xml-compressed;image/vnd.wap.wbmp;
Você pode vê-los em /usr/share/applications