在做嵌入式 Linux 产品的时候,我们通常会让机器自启动应用程序来处理相关业务,或者提供一个桌面系统让用户更加方便操作。那么这时候,我们就需要将编译好的应用程序添加到桌面,以便使用,就像 Windows 系统的桌面快捷方式一样。
  一般在 Linux 系统中,可以通过以下方法添加桌面图标。
  在 /usr/shared/applications/ 目录下,添加 xxx.desktop 文件(xxx为应用程序名),填写相关信息,保存即可。以 eclipse.desktop 为例说明:

[Desktop Entry]
Version=1.0
Name=eclipse
Exec=/home/root/soft/eclipse/eclipse
Icon=/home/root/soft/eclipse/icon.xpm
Terminal=false
Type=Application
Categories=Development

  一般只要关注下面3个属性即可:

  • Exec=软件执行文件的路径
  • Icon=快捷方式图标(如果有的话)
  • Name=快捷方式名称

      更详细的属性介绍如下:

// 文件头
[Desktop Entry]// 编码方式
Encoding=UTF-8  // 应用程序名称,根据当前系统语言匹配显示,优先匹配更细化的语言标识名称
Name=aMule
Name[en]=en_name
Name[en_US]=US_name // 鼠标经过上面时的提示名称,也可国际化
Comment=comment  // 菜单执行的命令或程序
Exec=command  // 显示在菜单项中的图标,可以为空
Icon=iconpath  // 是否使用终端
Terminal=false  // 分类
Type=Application // 是否选择单一实例
X-MB-SingleInstance=true// 菜单是否隐藏,类似 NoDisplay 属性
Hidden=false// 菜单所属类别,可以确定该菜单的位置
Categories=Application;Network;

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”的数值 来决定。当然,这些定义在应用程序浏览器中同样适用,请参考图3。

关键字”GenericName”:[可选]
该数值指定了相关应用程序的通用名称。比如在清单1中关键字”GenericName”的数值是”User Tutorial”。打开应用程序浏览器,就可以看见字符串”User Tutorial”被显示在图标的右侧,如图3所示:

关键字”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”等可选关键字。用户可以根据需要进行选取。


参考:http://www.cnblogs.com/cassvin/articles/2127388.html

如何在 Linux 系统中添加桌面图标相关推荐

  1. 2008 mysql 本地安全_如何在Linux系统中建立mysql的本地安全机制?

    如何在Linux系统中对MySQL进行本地的安全机制?今天我们将给大家介绍下具体的操作方法. local-infile=0#关闭远程连接,即3306端口.这是LinuxMySQL的默认监听端口.由于此 ...

  2. 如何在linux系统中设置定时任务?

    1. 引入 1.1 在日常开发中,我们经常需要设置一些定时任务. 举个栗子:在进行Java Web开发时,通常我们采用Springboot 框架,我们可以通过 注解+ cron表达式,设置定时任务. ...

  3. 案例详解-如何在 Linux 系统中安装和使用 7zip 以及 7zip的脚本编程使用教程(非p7zip,而是官方版本7zip for linux)附deb包下载链接

    如何在 Linux 系统中安装和使用 7zip 李俊才(jcLee95) 的个人博客 邮箱 :291148484@163.com CSDN 主页:https://blog.csdn.net/qq_28 ...

  4. linux下开放sftp端口,如何在 Linux 系统中如何更改 SFTP 端口

    如何在 Linux 系统中如何更改 SFTP 端口 SFTP(SSH文件传输协议)是一种安全文件协议,用于通过加密连接在两个主机之间传输文件. 它还允许您对远程文件执行各种文件操作并恢复文件传输. S ...

  5. linux系统怎么结束程序,如何在 Linux 系统中结束进程或是中止程序

    如何在 Linux 系统中结束结束进程或是中止程序 进程出错的时候,您可能会想要中止或是中断这个进程.本文,我们将在命令行和图形界面中探索进程或是应用程序的中断,这里我们使用 gedit 作为样例程序 ...

  6. 在linux中 如何创建磁盘配额,如何在Linux系统中配置磁盘配额?

    今天我们看看如何在Linux系统中配置磁盘配额,限制用户滥用空间.使用磁盘配额是相当简单的,对于限制那些过多占用磁盘空间的家伙很有用.而且,你还可以设置软配额和硬配额,软配额可以在某个用户接近其容量空 ...

  7. 如何在linux系统中安装虚拟机?

    在初学linux系统时,实验中使用虚拟机可以避免操作不当误删文件时,快速恢复. 在企业中,使用虚拟机可以降低占用空间并能节省资源. 下面我们将介绍如何在linux系统中安装虚拟机, 1.图形界面安装虚 ...

  8. 我的linux系统怎么输入pv,如何在Linux系统中使用pv命令

    本文介绍了如何在Linux系统中使用pv命令.内容很详细.有兴趣的朋友可以参考一下,希望对大家有帮助. PV 命令 PV由Andrew Wood开发,是Pipe Viewer的简称,意思是通过管道显示 ...

  9. linux服务器怎么添加路由,linux系统中添加路由的方法

    linux系统中添加路由的方法 发布时间:2020-06-17 11:38:59 来源:亿速云 阅读:95 作者:Leah 这篇文章将为大家详细讲解有关linux系统中添加路由的方法,小编觉得挺实用的 ...

最新文章

  1. 升余弦滤波器与根升余弦滤波器
  2. C#——简单的计算器(仿Windows 10计算器)
  3. lesson3 数码管静态显示及定时器和中断应用
  4. 工程图样中粗实线的用途_图纸天天画,粗实线和细实线的线宽比例是多少?2:1还是3:1?...
  5. JavaFX自定义控件– Nest Thermostat第1部分
  6. RWMutex的一道面试题
  7. 判断力有时候有多么重要?懂得选择多么重要?
  8. 性能比 GPU 高 100 倍!首款可编程忆阻器 AI 计算机面世
  9. OpenCV stereo matching 代码
  10. 从零实现深度学习框架——Softmax回归简介
  11. 怎么用屏幕录像工具录制游戏的精彩时刻
  12. 20本适合C/C++程序员入门的C/C++编程书籍PDF版
  13. 电子万年历c语言全教程,单片机c语言电子万年历完整程序-20210414061741.docx-原创力文档...
  14. 飞马间谍软件猖獗,苹果iOS系统被击穿
  15. Bearer ${Token},放置在HTTP头中发送
  16. 2019年腾讯、京东、 滴滴、讯飞等等互联网公司都在裁员,给你什么启示
  17. ural 1998 The old Padawan
  18. nand flash 烧写
  19. 我的第一个油猴脚本「屏蔽CSDN底下的登录栏」
  20. 如何提取公众号文章封面图

热门文章

  1. 数字IC笔试题,大疆校招16题(仅供参考)
  2. python readcsv读取gbk编码文件_python读写csv文件
  3. 「spacingjs-1.0.7」,点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载,极速在线查看享用。 链接:https://www.aliyundrive.com/s/a87tt
  4. 2019.5.summary
  5. jpa :配置一对多 Error accessing field 错误
  6. 腾讯云Ubuntu18.04配置OpenPCDet深度学习环境
  7. Unity bug error CS1703: Multiple assemblies with equivalent identity have been imported...
  8. 【中英双语】C 语言的历史
  9. Spring Festival
  10. outlook邮箱邮件与企业邮箱同步(outlook本地文件夹邮件,web邮箱里没有)