如何将应用程序和脚本集成到 Linux 桌面

已发表: 2022-10-12
蓝色背景上的笔记本电脑,显示 Linux 命令提示符。
fatmawati achmad zaenuri/Shutterstock.com

在 Linux 上,没有桌面文件的应用程序不会与您的桌面环境集成。 大多数应用程序都提供一个,但有时您需要创建一个。 这很容易,只需按照以下步骤操作。

桌面文件

桌面文件包含有关它们所属的应用程序或脚本的信息。 它们最常与二进制可执行文件一起使用,但如果您愿意,您也可以将它们与脚本一起使用。 为简洁起见,我们只会说“应用程序”。

9 个 Bash 脚本示例让您开始使用 Linux
相关9 个 Bash 脚本示例让您开始使用 Linux

桌面文件包含您的桌面环境在处理该应用程序时可以引用的元数据。 桌面文件将指定应用程序二进制文件或脚本的位置、它使用的图标等。 由于桌面文件存储在标准位置,因此您的桌面环境可以可靠地定位和引用它们。

如果应用程序没有桌面文件,它与您的桌面环境的某些集成将会失败。 它不会出现在应用程序搜索的结果中,您也无法将其固定到扩展坞或其他启动器。 在某些桌面环境中,您可以将桌面文件放在桌面上,它将充当快捷方式,让您通过双击桌面文件来运行应用程序。 正是这个用例给了他们他们的名字。

如何在 Ubuntu 上从源代码编译和安装
相关如何在 Ubuntu 上从源代码编译和安装

由于多种原因,应用程序可能没有桌面文件。 安装例程可能出现了问题,或者它可能是一个从未打算提供的极简安装程序。 将应用程序作为源代码下载并在您的计算机上编译通常不会创建桌面文件。

当然,如果您自己编写了应用程序,那么您也要对桌面文件负责。 表现良好且符合桌面环境规范和期望的应用程序是那些感觉专业并让用户相信您知道自己在做什么的应用程序。

无论您为什么要创建桌面文件,在所有情况下如何创建都是一样的。

桌面文件的构建

桌面文件是纯文本文件。 它们可以使用任何文本编辑器创建。 它们被赋予与它们所代表的应用程序相同的名称,并且按照惯例具有“.desktop”扩展名。

桌面文件可能包含注释、组标题和键值对。

  • 评论:评论以井号“ # ”开头。
  • 组标题:组标题充当部分标题。 它们用括号“[]”括起来。 它们用于将相关的键值对组合在一起。 唯一强制性的组标题是“[桌面条目]”。
  • 键值对:通过向命名元素或“键”提供值来输入设置。 例如, Type=Application是一个键值对。 “类型”是键,“应用程序”是值。

一个有效的例子

在开始之前,请确保应用程序运行。 打开终端窗口,然后启动应用程序。 如果它运行,那就太好了。 您可以继续制作桌面文件。 如果应用程序没有运行,那么无论你在桌面文件中放什么,它都不会运行。

在您考虑通过桌面文件添加另一层抽象之前,您需要纠正阻止应用程序启动的任何原因。

我们正在使用的程序有一个名为taf的可执行文件,位于“/usr/local/bin/taf/”目录中。 我们将启动应用程序以确保它启动时没有任何问题。

 ./taf 

启动 taf 应用程序

该程序启动得很好。

作为 GNOME GTK 应用程序运行的 taf 应用程序

这个简单的测试会产生有用的知识。 如果我们在尝试从桌面文件启动应用程序时遇到困难,这意味着问题一定与桌面文件有关,而不是应用程序本身。

我们可以在任何地方创建桌面文件,但要使用它,我们需要将它复制到两个地方之一。

  • 如果您是唯一将使用该应用程序的人,请将您的桌面文件复制到“~/.local/share/applications”目录。
  • 如果您希望所有用户都能使用该应用程序,请将您的桌面文件复制到“/usr/share/applications/”目录。

一个完整的桌面文件不必包含太多信息。 这是我们为taf应用程序创建的桌面文件。 它被称为“taf.desktop”。

 [桌面入口]
名称=文本冒险框架
GenericName=GDL Adventure 脚本解释器
Comment=游戏描述语言解释器
版本=1.0
执行=/usr/local/bin/taf/taf
路径=/usr/local/bin/taf/
图标=/usr/local/bin/taf/taf_icon.png
终端=假
类型=应用
类别=GNOME;GTK;游戏;

这可以用作您自己的桌面文件的模板。 请记住为您正在为其创建桌面文件的应用程序使用可执行文件的名称,并修改目录路径以适应。

这就是每一行的意思。

  • [Desktop Entry] :此行将文件标识为桌面文件。 即使文件命名错误并且没有“.desktop”扩展名,它也应该被识别并作为桌面文件处理。
  • Name :应用程序的完整标题,而不是可执行文件的名称。 当它显示在桌面环境中时,它将显示在应用程序图标下方。 它也是将在工具提示中使用的文本。
  • GenericName :这是应用程序类型的一般描述。 如果有适用的通用术语,例如 Web 浏览器、IDE 或文字处理器,您可以使用它。
  • 注释:这旨在提供附加信息以补充“名称”和“通用名称”键值对。
  • 版本:此文件符合的桌面文件规范的版本。
  • Exec :这可能是可执行文件的名称,或可执行文件的完整路径,包括可执行文件的名称。
  • Path :这是启动应用程序的目录的路径。 它是启动时应用程序的工作目录。
  • 图标:应用程序的图标。 此图标用于应用程序搜索结果以及将应用程序添加到扩展坞或其他启动器时。
  • 终端:指示应用程序是否在终端窗口中运行。
  • 类型:对于常规应用程序,这将始终是“应用程序”。
  • 类别:此值应以分号“ ; ” 因为它有一个列表。 该列表包含应用程序可能在菜单中列出的类别。

每次您修改实时桌面文件时(位于“~/.local/share/applications”或“/usr/share/applications/”中的文件),您都需要注销并再次登录,以查看您的更改有何影响制成。 为避免这种情况,您可以使用update-desktop-database命令。 当你这样做时,你需要使用sudo

 sudo 更新桌面数据库

更新桌面文件数据库

还有一个实用程序可以检查您的桌面文件是否正确。 如果它检测到任何语法或其他错误,它将向您报告。 我们将在文件的“类别”行中添加“应用程序”一词,并检查它。

我们将最后一行更改为:

 类别=GNOME;GTK;游戏;应用程序;

这应该会引发错误,因为“应用程序”类别已被弃用。

 桌面文件验证 taf.desktop 

检查桌面文件是否有错误

验证器向我们发出警告,“应用程序”类别不再是“类别”列表中的可接受值。

使用您的桌面文件

如果该应用程序仅供您使用,请将桌面文件复制到“~/.local/share/applications”目录。 如果允许所有用户使用该应用程序,请将桌面文件复制到“/usr/share/applications/”目录。

我们将把它复制到“/usr/share/applications/”目录。

 sudo cp taf.desktop /usr/share/applications 

将桌面文件复制到 /usr/share/applications 目录

我们还将确保读取我们的新桌面文件并将其元数据添加到数据库中。

 sudo 更新桌面数据库

更新桌面文件数据库

“Super”键通常位于左侧的“Ctrl”和“Alt”键之间。 在 GNOME 中按“Super”键进入应用程序搜索。 因为我们的桌面文件描述了一个名为“Text Adventure Framework”的应用程序,输入“text”作为搜索线索就足以在搜索结果中显示应用程序的图标。

单击图标启动应用程序。

更新桌面文件数据库

该应用程序已很好地集成到桌面环境中。 它的图标在运行时正确显示在 Dock 中。 指向该图标会显示一个包含应用程序全名的工具提示。

单击图标显示窗口预览视图,显示应用程序已打开的窗口。

右键单击应用程序图标会生成一个上下文菜单。 选择“添加到收藏夹”选项将应用程序固定到 Dock。

突出显示“固定到收藏夹”选项的上下文菜单

应用程序图标移动到分隔线上方,并成为 Dock 上的永久图标。 即使应用程序未运行,该图标也会出现。

去原生

用户希望能够使用桌面应用程序做某些事情。 他们希望该应用程序能够列在搜索结果中。 他们会假设它可以固定到启动器和扩展坞,并具有表现良好的本机应用程序的其他优点。 数量惊人的这些交互是由桌面文件控制的。

如果您发现自己正在处理一个缺少桌面文件的应用程序,您现在可以为它创建一个。 它肯定比每次手动启动应用程序都要好。

相关:如何使用键盘快捷键在 Ubuntu 中提高工作效率