Desktop Entry,关于Linux如何创建桌面快捷方式

1.Desktop Entry 文件标准简介

在 Windows 平台上,用户可以通过点击位于桌面或菜单上的快捷方式轻松打开目标应用程序。现代 Linux 桌面系统也提供了此项功能。目前,Linux KDE 和 Linux GNOME 桌面系统都使用 Desktop Entry 文件标准来描述程序启动配置信息。Desktop Entry 文件标准是由 FreeDesktop.org(http://freedesktop.org/wiki/) 制定。

2.Desktop Entry 文件结构

Desktop Entry 文件通常以字符串”[Desktop Entry]”开始。由清单 1 可以得知,Desktop Entry 文件的内容是由若干{关键字,数值}配对的 Entry 组成的。例如,”Version”就是一个关键字,关键字”Version”对应的数值是”1.0”。Desktop Entry 文件标准定义了一系列标准关键字。标准关键字分为必选和可选两种:必选标准关键字必须在 .desktop 文件中被定义;而可选关键字则不必。以下是对重点关键字的解析。

关键字"Version":[可选] 该数值指定了当前 Desktop Entry 文件所遵循的 Desktop Entry 文件标准版本。
关键字"Encoding":[1.0 版本不推荐使用] 该数值指定了当前 Desktop Entry 文件中特定字符串所使用的编码方式。尽管Desktop Entry 文件标准 1.0 不再推荐使用该关键字,但由于历史原因该关键字仍然广泛出现在现有的 Desktop Entry 文件中。
关键字"Name":[必选]
该数值指定了相关应用程序的名称。比如在清单1中关键字"Name"的数值是"Quick Start Tour"。打开文件浏览器,进入"/usr/share/applications"目录,就可以看见"cbt.desktop"文件所定义的快捷方式的显示样式,如图2所示。其中,快捷方式的显示名称由关键字"Name"的数值所决定,快捷方式所使用的图标由下文中将要介绍的关键字"Icon"的数值来决定。当然,这些定义在应用程序浏览器中同样适用。
关键字"Comment":[可选]

该数值是对当前Desktop Entry的简单描述。
关键字”Type”:[必选]
关键字”Type”定义了Desktop Entry文件的类型。常见的”Type”数值是”Application”和”Link”。”Type = Application”表示当前Desktop Entry文件指向了一个应用程序;而”Type = Link”表示当前Desktop Entry文件指向了一个URL (Uniform Resource Locator)。
关键字”Exec”:[可选]
关键字”Exec”只有在”Type”类型是”Application”时才有意义。”Exec”的数值定义了启动指定应用程序所要执行的命令,在此命令是可以带参数的。在本例中,关键字”Exec”的数值是字符串”gnome-open /usr/share/doc/manual/sled-gnome-cbt_en/index.html”。在shell中输入该字符串并按回车键同样可以启动指定应用程序。
关键字”URL”:[可选]
关键字”URL”只有在”Type”类型是”Link”时才有意义。”URL”的数值定义了该Desktop Entry文件指向的URL。例如:
Type = Link
URL = http://www.ibm.com/developerworks

双击含有上述内容的Desktop Entry文件将启动web浏览器,并打开指定网页”http://www.ibm.com/developerworks“。
关键字”Icon”:[可选]
该数值定义了当前Desktop Entry文件在应用程序浏览器或是在文件浏览器中所显示的图标。如果关键字”Icon”的数值是以绝对路径的格式给出,那么其数值所指定图标文件将被使用;反之,Linux系统将使用”Icon Theme Specification”[2]在系统指定图标目录下定位所需要使用的图标文件。比如在本例中关键字”Icon”的数值是”cbt”,它实际对应着系统指定图标目录下的图片文件”cbt.png”cbt.png 。该图片作为图标的显示效果如图2,图3所示。
关键字”StartupNotify”:[可选]
关键字”StartupNotify”的数值是布尔值(true 或是 false)。该关键字只有在”Type”类型是”Application”时才有意义。其数值的含义由规范”Startup Notification Protocol Specifications”[3]定义,在此不再详述。
关键字”Terminal”:[可选]
和”StartupNotify”一样,关键字”StartupNotify”的数值也是布尔值,并且该关键字只有在”Type”类型是”Application”时才有意义。其数值指出了相关应用程序(即关键字”Exec”的数值)是否需要在终端窗口中运行。本文将在下一节中给出关键字”Terminal”的具体使用方法。
关键字”Categories”:[可选]
关键字”Categories”只有在”Type”类型是”Application”时才有意义。”Categories”的数值指出了相关应用程序在菜单中显示的类别。具体菜单分类由规范”Desktop Specification Menu”具体定义[4]。
关键字”OnlyShowIn”和”NotShowIn”:[可选]
这两个关键字分别定义了当前Desktop Entry是否在特定Linux 桌面系统(例如:Linux GNOME 或 Linux KDE)下显示(由”OnlyShowIn”定义),或不显示(由”NotShowIn”定义)。具体定义请参考”Desktop Specification Menu”[4]。
关键字”X-SuSE-translate”:[SUSE Linux特有]
关键字”X-SuSE-translate”是SUSE Linux(http://www.novell.com/linux/)特有的。”X-SuSE-translate”符合SUSE RPM Package风格。”X-SuSE-translate”数值表示是否要对关键字”Name”和”GenericName”进行翻译。详情请参考”SUSE Package Conventions”[5]。
本地化关键字”[LOCALE]”
根据”Desktop Entry Specification”规范[1],在关键字后加上字符串”[LOCALE]”就可以对该关键字进行特定的本地化定义。”LOCALE”的合法取值为:

LOCALE= lang_COUNTRY.ENCODING@MODIFIER

在此,域”_COUNTRY”,”.ENCODING”和”@MODIFIER”是可以被忽略的。当指定Desktop Entry文件被解析时,解析器应当根据当前POSIX locale来正确获取本地化的关键字数值。例如清单1就分别定义了在”cs”和”hu”语言环境下关键字”Name”,”Comment”和”GenericName”的不同数值。
其余关键字
除了上述在清单1中出现的关键字外,”Desktop Entry Specification”还定义了”Hidden”,”TryExec”,”MimeType”等可选关键字。用户可以根据需要进行选取。

3. 实例

创建实例
以创建Eclipse为实例:
(1)新建文件eclipse.desktop,命令如下:
sudo vim /usr/share/applications/eclipse.desktop
2)在新建文件中添加如下内容并保存:
[Desktop Entry]
Encoding=UTF-8
Name=eclipse
Comment=Eclipse IDE
Exec=/opt/eclipse/eclipse
Icon=/opt/eclipse/icon.xpm
Terminal=false
StartupNotify=true
Type=Application
Categories=Application;Development;
对上面的命令中的几条稍作解释:
Exec代表应用程序的位置【视实际情况修改】
Icon代表应用程序图标的位置【视实际情况修改】
Terminal的值为false表示启动时不启动命令行窗口,值为true表示启动命令行窗口【建议为false】
Categories这里的内容决定创建出的起动器在应用程序菜单中的位置,按照上面的写法创建的起动器将出现在应用程序-Internet中,以 此类推,如果想在应用程序-办公中创建起动器,上述最后一行应该写成:Categories=Application;Office;
3)此时会在/usr/share/applications中看到eclipse的快捷方式
4)给该文件加上启动权限。
Chmod +x eclipse.desktop
这样一个快捷方式就完成了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值