如何为 Linux 应用程序创建任务栏和菜单项

有时 Linux 应用程序无法从您的发行版的存储库和软件商店中获得,或者作为可下载的 DEB 或 RPM 包提供。 很多时候,应用程序只能作为 AppImages 或老式 tarball 使用。 这些独立的可执行文件实际上并没有安装,它们只是运行。

问题是,在没有安装的情况下,您没有这些应用程序的任务栏或菜单条目。 虽然有一些工具可以让创建这些条目变得更容易,但最好知道如何自己手动创建它们。

幸运的是,大多数主要的 Linux 桌面环境都依赖于 freedesktop.org 提供的一组通用规范。 因此,创建应用程序快捷方式的过程在不同的 Linux 发行版上是相同的。

第 1 步:显示隐藏的文件和文件夹

自定义菜单条目是从位于主目录中隐藏文件夹中的桌面文件创建的:

/home/username/.local/share/applications

首先要做的是配置文件管理器以查看隐藏的文件和文件夹。 打开文件管理器,单击菜单图标(三个水平条),然后选中旁边的框 显示隐藏文件.

一些以句点开头的新文件和文件夹,包括 。当地的现在应该出现在您的主目录中(在文件名或目录的开头附加句点 (.) 是您在 Linux 上隐藏文件和文件夹的方式)。

前往 。当地的 > 分享 > 应用 文件夹。 如果这是全新的 Linux 安装,您可能需要创建 应用 自己文件夹。 这是您保存桌面文件的地方。

第二步:找到应用的WMClass

接下来要做的是识别应用程序的 WMClass 或窗口 ID。 这使我们能够创建一个现代任务栏条目,将应用程序启动器和打开的窗口组合成一个图标。 如果您跳过此步骤,您将只创建一个启动应用程序的快捷方式。

要识别您的特定应用程序的 WMClass,请启动您的 AppImage 或通过直接启动可执行文件以老式方式压缩包。

在 X11 上查找 WMClass

如果您使用的是 X11,请打开终端并输入:

xprop WM_CLASS

您的鼠标光标应该变成十字准线。

单击应用程序窗口中的任意位置,您的终端应显示以下格式的输出:

WM_CLASS(STRING) = appname, AppName

引号中的第二个值是您的应用程序的 WM类; 记住它以进行下一步。

在 Wayland 上查找 WMClass

如果您使用的是较新的发行版,您可能不会使用传统的 X11 显示服务器,而是使用更新的、触摸友好的 Wayland。 不幸的是,这个技巧只适用于 GNOME,因为它依赖于 GNOME Shell 的窥镜工具。

  1. Alt + F2, 类型 lg,然后按 Enter.
  2. 点击 视窗 标签。

现在应该列出所有打开的窗口及其各自 wm类. 记得记下 wm类 下一步的申请。

第 3 步:创建桌面文件

现在是时候创建一个桌面文件了。 打开文本编辑器并将以下内容粘贴到新文件中:

[Desktop Entry]
Type=Application
Name=ApplicationName
GenericName=ApplicationType
Icon=/home/Username/.local/share/applications/ApplicationIcon.extension
Exec=/home/Username/ApplicationDirectory/ApplicationExecutable.extension
Terminal=false
Categories=ApplicationSubCategory;ApplicationCategory
Keywords=Keyword1;Keyword2;Keyword3
StartupWMClass=ApplicationWMClass

让我们逐行浏览:

  1. [Desktop Entry] 将文件标识为桌面菜单项,应始终保持原样。
  2. 类型 标识快捷方式是 应用. 其他选项包括目录和链接。
  3. 姓名 标识您的应用程序的名称。 改变 应用名称 以反映您的应用程序的名称。
  4. 通用名 标识应用程序类型。 改变 申请类型 到通用描述,例如“文本编辑器”或“Web 浏览器”。
  5. 图标 标识与您的应用程序关联的图标。 您可以选择任何图像文件,但 PNG 和 SVG 通常效果最好。 改变 /home/Username/.local/share/applications/ApplicationIcon.extension 以反映应用程序图标的位置。
  6. 执行 标识应用程序的可执行文件。 改变 /home/用户名/ApplicationDirectory/ApplicationExecutable.extension 以反映应用程序可执行文件的位置和名称。
  7. 终端 标识您的应用程序是否在终端窗口中运行。 这里的选项是 真的 对于终端和 错误的 用于图形应用程序。
  8. 类别 标识您的应用程序属于哪些类别和/或子类别。 代替 应用子类别应用类别 为您的申请提供适当的类别和/或子类别——您可以在 freedesktop.org 上找到完整的选项列表. 虽然您可以包含多个选项,但这样做可能会导致您的应用程序在您的菜单中出现多次。
  9. 关键词 识别词以帮助搜索您的应用程序。 将 Keyword1、Keyword2 和 Keyword3 更改为要与应用程序关联的任意数量的关键字,用分号 (;) 分隔。
  10. 启动WMClass 标识您的应用程序的窗口。 代替 应用程序WMClass 使用上一节中的应用程序的 WMClass。

这是一个使用 Bitwarden AppImage 和 Downloads 文件夹作为图标和可执行目录的示例。

[Desktop Entry]
Type=Application
Name=Bitwarden
GenericName=Password Manager
Icon=/home/adam/Downloads/Bitwarden.png
Exec=/home/adam/Downloads/Bitwarden-22.6.2-x86_64.AppImage
Terminal=false
Categories=Security;System
Keywords=Bitwarden;Crypto;Passwords;Security
StartupWMClass=bitwarden

进行更改并将文本文件另存为 应用程序名称.desktop/home/username/.local/share/applications/.

您的应用程序现在应该出现在您的菜单中:

您现在可以将 AppImages 和 tarball 固定到任务栏或停靠栏,它们通常会像正常安装的应用程序一样运行。

使用引号处理空格

如果目录、图标或可执行文件包含空格,则您的桌面文件不太可能正常工作:

Exec=/home/Username/Application Directory/Application Executable.extension

您需要在开头和结尾加上引号 图标执行 字段。 例如:

Exec=/home/Username/Application Directory/Application Executable.extension

现在您的应用程序的菜单项应该可以正常工作了。

使用星号处理版本号

如果您的应用程序的可执行文件包含版本号,则每次应用程序更新时您都需要更新桌面文件:

Exec=/home/Username/ApplicationDirectory/ApplicationExecutable-v2.2.extension

但是,KDE 用户可以使用 星号

Exec=/home/Username/ApplicationDirectory/ApplicationExecutable-v*.extension

作为通配符来替换更改的文本,例如版本号,如下所示:

不幸的是,GNOME 不尊重桌面文件中的通配符,但您始终可以重命名可执行文件并删除版本号。

在 Linux 上创建您自己的应用程序菜单项

现在,当您下载 AppImage 或 tarball 时,您将能够将其集成到您的任务栏和菜单中,就像它是任何其他已安装的应用程序一样。

在此过程中,您还学习了如何在文件管理器中显示隐藏的文件和目录(以及隐藏它们)、创建桌面文件以及识别应用程序的 WMClass 的几种方法。

通常,如果您从可靠的来源获得软件,您将获得默认为您创建的菜单条目。