许多使用传统菜单的基于 Ubuntu 的发行版都有类别。(配件、图形、互联网、办公室等)
当我第一次看到这些时,我以为它们是某人手动制作的预设类别,但后来我安装了像 Microsoft Edge 或 Chrome 这样的应用程序,我自动在互联网类别中看到了这些应用程序,我安装了 grub 定制程序,它自动出现在管理类别中,我安装了 Gparted,它也自动出现在管理类别中。
我在 Linux mint、Xubuntu 和 Raspberry PI OS 上测试了这一点(我知道它基于 Debian 而不是 Ubuntu)我也相信旧版本的 Ubuntu 也有同样的事情。
我的问题是 Linux 如何知道将新应用程序放在哪里?它是应用程序的在线列表,还是操作系统中的本地列表,或者我安装的应用程序是否包含一行代码,告诉 Linux 它应该属于哪个类别?
那么,linux 指的是什么呢?
答案1
应用程序附带一个.desktop
文件,其中包含一行
Categories=...
此行中的信息由中的文件使用/etc/xdg/menus
,这些文件定义菜单的组织、目录、其顺序以及哪些.desktop
文件应显示在具有特定名称的目录下。
这里举个例子,.desktop
Firefox 的文件有一行
Categories=GNOME;GTK;Network;WebBrowser;
并且文件/etc/xdg/menus
包含以下代码片段:
<Menu>
<Name>Internet</Name>
<Directory>kf5-internet.directory</Directory>
<Include>
<And>
<Category>Network</Category>
<Not><Category>X-KDE-More</Category></Not>
</And>
</Include>
这意味着Internet
菜单中的目录应该包含其行中.desktop
包含的文件,这就是 的情况。Network
Categories=...
firefox.desktop
您的文件可能与我的有一点不同,/etc/xdg/menus
相应的代码片段也可能有一点不同,这取决于您的桌面环境,但通过我的示例,您可以看到它在底层是如何工作的。