优麒麟启动器(desktop文件)解析

优麒麟启动器(desktop文件)解析

很多小伙伴在使用优麒麟操作系统界面的时候,很容易感受到它与其他操作系统的不同,不仅仅是界面风格改变以及功能模块的重新划分,还有不少在其他操作系统上很难见到的有趣的小功能,今天就来探讨一下一个我们经常见到却很少遇到的贴心小工具–创建启动器。
优麒麟的桌面环境非常简洁,如果你想要改造自己的桌面环境,想要对应用程序的图标进行设计,想要更加方便的文件及文件夹打开方式,需要某些应用的高级功能(例如点击wps文档自动打开某几篇自己正在写的文章,点击火狐浏览器自动打开某几个自己经常使用的网站)。也许启动器就是你桌面环境改造的最佳工具。
在桌面右键单击,第二个选项就是创建启动器的选项,点击启动器我们就可以看到以下界面,其中的图片,名称都是可以用户自由命名(例如名称填kylin的火狐浏览器,命令填firefox,左上角图标点击选取本地文件)。



我们点击自己设置好的启动器,发现点击可以启动火狐浏览器,这很容易让人联想到也许会这项功能与windows上面的创建桌面快捷方式是一样的,但是我们右键单击桌面任意一个文件会发现其实优麒麟也是有创建桌面快捷方式的,在终端下对两者进行比较我们可以发现启动器是一个.desktop文件,而桌面快捷方式是一个软链接(实际上windows的桌面快捷方式也是一个软链接)。我们直接创建一个后缀为.desktop的文本文件与启动器效果是完全等同的。以下就以上面创建的启动器为例分析以下在linux中启动器所用desktop文件的属性,以便小伙伴们更加方便的使用。相比与创建桌面快捷方式,启动器(desktop文件)的定制化程度更高,图标和名称的选器更加自由,在换新的系统之后,只要将旧操作系统上面的desktop文件进行迁移到新系统,以及方便软件爱好者更加友好的管理自己的二进制文件。

下面以之前所创建的wps的属性为例讲解linux中的启动器(desktop文件),「创建启动器之后的属性为必选属性如Name,Icon,等,高级选项需要手动用文本编辑器添加」

  • 创建应用程序的启动器
  • 属性Desktop Entry:
    Desktop Entry 文件标准是由 FreeDesktop.org制定的,目前最新的版本是”Desktop Entry Specification 1.0″[1]。
  • 属性Exec
    关键字”Exec”只有在”Type”类型是”Application”时才有意义。”Exec”的数值定义了启动指定应用程序所要执行的命令,在本例中,关键字”Exec”的数值是firefox .在shell中输入该字符串并按回车键同样可以启动指定应用程序

其中 Exec 常用的参数有:%f %F %u %U

%f:单个文件名,即使选择了多个文件。如果已选择的文件不在本地文件系统中(比如说在HTTP或者FTP上),这个文件将被作为一个临时文件复制到本地,%f将指向本地临时文件;

%F:文件列表。用于程序可以同时打开多个本地文件。每个文件以分割段的方式传递给执行程序。

%u:单个URL。本地文件以文件URL或文件路径的方式传递。

%U:URL列表。每个URL以分割段的方式传递给执行程序。本地文件以文件URL或文件路径的方式传递。

  • 属性Icon
    定义了启动器显示的图标。如果关键字”Icon”的数值是以绝对路径的格式给出,那么该图标文件将被使用;优麒麟和其他linux系统也支持系统主题的图标,例如Icon图标属性选择firefox系统就会自动在当前系统主题下选取相应的图标。
    注意:

在desktop文件中,在icon的主图规范中,Icon关键字的数值无法识别”~”,所以必须使用绝对路径

  • 属性Name:
    无论用户是如何给desktop文件命名的,显示给用户的名称都会是该名称。
  • 属性Type:
    关键字”Type”定义了Desktop Entry文件的类型。常见的”Type”数值是”Application”和”Link”。”Type = Application”表示当前Desktop Entry文件指向了一个应用程序;而”Type = Link”表示当前Desktop Entry文件指向了一个URL 。
  • 属性Comment:
    应用程序的注释。在不同的桌面环境中,该属性的显示时机可能存在较大差异,很多解析应用程序的代码都会选择解析desktop文件来解析应用程序,但往往解析的属性不包含Comment(大多数仅解析Name,Icon,Exec三个属性)。在优麒麟操作系统和桌面环境中,一般在开始菜单中该应用程序鼠标悬浮时,快速启动栏鼠标悬浮等情况会显示该属性。
  • 属性GenericName:

与Name类似,GenericName也是应用程序的名称(相关应用程序的通用名称),但是一般不直接显示给用户,而是在某些应用内才会被解析和显示,优麒麟操作系统默认不解析该属性,全部解析Name属性来展示应用程序名称。

  • 属性MimeType:
    MimeType属性是MIME体系在desktop文件中的体现,MimeType属性包含了许多对该应用程序的功能的实现,我们能够看到许多mime文件类型描述文件,这些文件定义了每个MiMeType的特征参数,以及何种类型的的文件归属到这个MIME下,他们实现了默认打开程序的优先级,修改打开默认程序等功能。(一篇关于MIMEType的详细介绍:https://www.jianshu.com/p/4617e8e600ad)。
  • 属性Categories
    属性Categories只有在”Type”类型是”Application”时才有意义。该属性能够指出应用程序在菜单中显示的类别。具体菜单分类由规范”Desktop Specification Menu”具体定义。
  • 属性Actions:
    该属性与Qt中的QAction类极其相似,QAction可以包括一个图标,菜单文本等,这些内容的绝大部分都可以在构造函数中设置。也可以通过setIcon(),setIconText()等函数分别设置,在desktop文件中这些功能的实现依然是通过给不同的Action设置不同的属性,这样,应用程序的功能就能够极大地丰富。Firefox.desktop就是一个很好的例子。
  • 属性OnlyShowIn,NotShowIn
    是否在特定的linux桌面系统中使用
  • 除了上述属性外我们有时还能在不同的desktop文件中见到其他特殊的属性,例如StartupNotify,其数值的含义由规范”Startup Notification Protocol Specifications”定义(链接:https://specifications.freedesktop.org/startup-notification-spec/startup-notification-latest.txt);

    X-SuSE-translate:关键字”X-SuSE-translate”是SUSE Linux(http://www.novell.com/linux/)特有的。”X-SuSE-translate”符合SUSE RPM Package风格。”X-SuSE-translate”数值表示是否要对关键字”Name”和”GenericName”进行翻译。

二:创建终端应用程序的启动器和打开URL的启动器
许多程序员可能面临要调试某二进制文件的时候需要在终端打开方便查看打印信息,这时候我们将优麒麟启动器的类型选为第二项:终端应用程序。查看desktop文件发现与上面创建应用程序的唯一不同就是属性Terminal的选项由false改为了true,需要指出的是Terminal属性只有在 Type的类型是Application的时候才有意义。
该功能对从事应用程序的开发者是比较友好的,可以非常直观的向其他人演示应用程序的最终用户形态,只需要将自己的二进制文件的绝对路径加入到“命令”选项中,再选取所需要的应用程序图标,俨然就是一个最终发布的版本。


与创建终端应用程序的启动器相比,该功能更加适用于初级用户,linux系统的文件管理相比windows和macos还有较大的改善空间,但是该功能的某些应用场景让我们比windos和mac更加方便。
通过文本查看该desktop文件可以明显感受到这种类型的启动器属性比较少,我们只需要设置他的图标,名称,链接路径即可。只需要注意属性”Type = Link”表示当前Desktop Entry文件指向了一个URL 。

如果你有一些自己喜欢的图标,使用他们并创建属于自己的应用程序,能够避免原生linux桌面的的过于简单,给桌面增加一些生机。

图中圣诞节主题图标均下载自 https://www.easyicon.net/ 国内一家免费的主题图标网站。站内搜索圣诞节即可出现这些图标。

在linux的环境下 很多时候我们下载的软件都仅仅是一个二进制文件,没有很好的软件体验,用启动器可以很好的解决这个问题。

发表评论

电子邮件地址不会被公开。 必填项已用*标注