菜单如何对应用程序进行分类

菜单如何对应用程序进行分类

许多使用传统菜单的基于 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文件应显示在具有特定名称的目录下。

这里举个例子,.desktopFirefox 的文件有一行

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包含的文件,这就是 的情况。NetworkCategories=...firefox.desktop

您的文件可能与我的有一点不同,/etc/xdg/menus相应的代码片段也可能有一点不同,这取决于您的桌面环境,但通过我的示例,您可以看到它在底层是如何工作的。

欲了解更多详情,您可以查看桌面菜单规范来自 freedesktop.org,这是最新版本

相关内容