我想知道 Ubuntu 如何找出应用程序的正确名称。例如,当您Open with -> Other application
从上下文菜单中选择时,系统会显示此列表。
开发人员如何向 Ubuntu 传授其应用程序的名称?另一位开发人员又如何从系统中检索应用程序的名称?我不需要实际的代码,我只是对事物的概念方面感兴趣。
答案1
这是在应用程序的桌面入口文件。桌面入口文件是应用程序的启动器(与您可以在桌面上创建的启动器的文件格式相同),其中还包含各种元数据。安装应用程序时,这些桌面入口文件将放置在 /usr/share/applications 中,我认为它们的内容也会被缓存以提高速度。
此处定义的重要数据是应用程序可以打开的 MIME 类型列表。这在桌面条目文件中的“MimeType”键中定义。例如,GIMP 在其桌面条目中有以下内容:
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;
这指定了 GIMP 可以打开的文件类型的列表。
应用程序名称用“名称”键指定,例如。
Name=GIMP Image Editor
如您所见,名称旁边有图标。这些图标也在桌面条目文件中指定为图标名称(从图标主题中查找正确的文件)或图标文件路径。GIMP 具有以下内容:
Icon=gimp
在‘打开方式 -> 其他应用程序’对话框中,推荐的应用程序是指定能够打开该文件类型的应用程序,而其他应用程序则是指定不能打开该文件类型的应用程序。
当您选择应用程序后,文件管理器会查找如何运行该应用程序来打开文件。它会在桌面条目中查找“Exec”键。GIMP 具有以下 Exec 键:
Exec=gimp-2.6 %U
这意味着该命令:
gimp-2.6 %U
将运行以打开文件,并用%U
代表已选择打开的文件的 URL 列表(通常为 file:// url)替换。除了“%U”,应用程序还可以使用“%u”表示单个 url 或使用“%f”/“%F”表示单个/多个文件路径。
答案2
这很简单。有一些 .desktop 文件包含此信息:
[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;
您可以在 /usr/share/applications 中看到它们