在linux中添加应用程序到applications列表

来源:互联网 发布:淘宝合并下单 编辑:程序博客网 时间:2024/05/22 15:34

  在linux中,由于地位的特殊性,在安装应用程序的时候是区别与windows桌面操作系统的。在作为服务器的时候往往不会启用桌面,因此想要在applications列表中查找应用程序的需求自然不复存在,但是在个人开发或者调试的时候大多使用的是linux桌面版本。除了通过linux的软件包管理器安装的应用程序,凡是通过源码编译安装解压二进制等形式安装的软件将无法在applications列表中被查找。事实上这种情况我们往往是创建软连接到/usr/bin目录中。接下来我们要简单的实现将我们自定义安装的应用程序添加到applications列表中。

我的linux系统

linux是如何管理应用程序列表的

  添加一个应用程序到applications列表中是很简单的,关键是要明白其中的道理,知其然,更知其所以然,方能举一反三。以下图为例,这是一张在linux中进行应用程序搜索时的界面:

搜索应用程序

  上图所展现的效果就是我们要达到的目的,将应用程序添加到这个区域内,以便快速的被检索到。尽管linux已经可以十分方便的在终端进行程序搜索,但是我们认为基于桌面方式的应用程序列表的搜索依然是有必要的。这对于在一定范围内提高效率是有建设意义的,同时对于linux的普及也有具有积极的作用。

  要达到这个目的,我们需要先弄清楚linux是如何管理应用程序的。我们先观察一个特殊的目录,这个目录位于:/usr/share/applications/。根据目录的名称可以得到很大的启示,share是共享的,表明这里的设置范围是系统级别的,share下面的applications意义也十分明显,就是应用程序。接下来我们观察applications目录中的内容:

applications

  你一定可以看到很多以*.desktop为后缀名的文件,没错,就是这些文件,linux通过这个目录下的配置文件来管理应用程序。当然了,linux对应用程序的管理和搜索不会如此简单(尽管这是我们希望达到的目的),但是这对于我们自定义程序已经足够了。

  值得一提的是,你即已经懂得linux管理应用程序浏览的原理,那么就可以对比一下windows的管理方式,windows利用快捷方式,实际上这也可以看做一种快捷方式,当你通过文件浏览器进入这个目录的时候,我们是可以双击或者单击这些desktop文件的,这也能运行一个程序,原理十分简单,那就是该标准文件已经具备一切可以运行的数据结构。

打开应用程序

  接下来我们要做的就是在这个目录下面创建一个.desktop配置文件,我们以java的ide软件idea intellij为例,将这个通过解压的ide程序添加到applications列表中。

  首先,在/usr/share/applications/目录下创建一个idea.desktop文件。
为了方便我们可以随便在该目录下复制一个desktop文件即可,然后重命名并且打开这个文件进行编辑。

  其次,我们来观察这个文件的必要内容:

desktop文件内容

  接下来我们依次介绍每个配置节点的意义:
* [Desktop Entry] 必填,表明该文件是一个Desktop Entry文件,节点意思十分明显,桌面入口。Desktop Entry实际上是一个文件标准,该标准由FreeDesktop.org制定;

  • Comment 这是应用程序的描述,通常会在搜索应用程序的界面看到这个描述(鼠标放到应用程序图标上时);

  • Comment[zh_CN] 同样的作用,表明使用中文。同理,[]里面可以书写多国语言;

  • Exec 必填,应用程序启动的指令,可以带上参数运行,实际上这与在终端的启动指令是一样的;

  • GenericName 应用程序通用名称,他会显示在搜索结果以及非搜索结果中;

  • MimeType 可选,熟悉web开发的人员应当十分熟悉,这是表明映射;

  • Name 必填,该值定义了应用程序的名称,这个设置同理可以使用Name[en]等字样,在不同的语言环境下面,会使用对应的Name值;

  • StartupNotify 可选,该值是bool值([true | false]),这个设置只有在Type类型是application的时候才有意义;

  • Terminal 可选,该值也是bool值([true | false]) ,并且只有在Typeapplication时有意义,该值指出了相关应用程序(Exec值)是否需要在终端中运行;

  • Type 必填,这是一个枚举值,它定义了desktop文件的类型。常见的数值是ApplicationLinkApplication表示当前文件指向一个应用程序,而Link表明当前文件指向一个URL,即链接文件;

  • Categories 可选,只有在Type类型是Application时才有意义。Categories的值表明了相关应用程序在菜单中显示的类别,关于类别的定义参见Desktop Specification Menu的具体定义,如图:

类别

  • Icon 可选,该值定义了当前desktop文件在应用程序浏览器中所显示的图标,如果该值给定的是一个绝对路径,那么该路径下的图标将会被直接使用,反之,linux系统将使用Icon Theme Specifacation在系统指定的图标目录下定位所需要使用的图标文件。

      还有很多的节点配置这里不做过多介绍,相信读者看到上述的定义已经可以做到举一反三的查询。

0 0