以下内容为你解析 Deepin Linux 操作系统中的 Desktop Entry 文件,同时附上实例讲解。

概念

Desktop Entry 文件是 Linux 桌面系统中用于描述程序启动配置信息的文件,它以 .desktop 为后缀名,相当于微软 Windows 系统下的桌面快捷方式。通常一个二进制可执行程序是一个没有后缀没有图标的文件,不可以随意移动。如果没有 desktop 文件,用户每次都需要打开一层层文件夹最后找到这个可执行文件,然后启动应用。这样打开应用的方式没有问题,但特别繁琐,而且可执行文件分布散乱,不易于管理。

因此很多 Linux 发行版(包括 Deepin ) 都提供了启动器,便于集中管理应用程序。启动器本质是一个位于 /usr/share/applications/ 路径下的目录。启动器目录中存放着很多 .desktop 文件,每个 .desktop 文件都是一个应用程序的入口,并且 .desktop 文件可以显示图标,对用户更加友好。

desktop文件模板

一个 desktop 文件主要由两部分组成,头部 [Desktop Entry] 声明(用于指定这是一个desktop文件)和一系列的参数/值对组成。一个 desktop 文件至少要指定 3 个参数的值(Name、Type 和 Exec)。

demo1.desktop:

[Desktop Entry]

Name=

Type=Application

Exec=

1.Name: desktop 文件最终显示的名称(一定要注意和 desktop 文件名的区别)。

2.Type: 用于指定 desktop 文件的类型(包括 3 种类型:Application、Link、Directory)。

3.Exec: 用于指定二进制可执行程序的完整路径。

大多数情况下,我们还需要指定 Icon 的值(一个 desktop 文件没有图标那也是缺少了点东西)

1.Icon: 指定应用程序图标的完整路径(可以省略后缀名)。

2.图标支持 png 格式、svg 格式等,图标的推荐尺寸为 128x128。

因此一个基本的 desktop 文件模板应该像下面这样:

demo2.desktop:

[Desktop Entry]

Name=

Type=Application

Exec=

Icon=

应用实例

小明同学在 CLion官网(https://www.jetbrains.com/clion/) 下载 CLion 解压后,把整个应用目录放置在 ~/Apps 路径下(Apps 目录是他自己创建的),小明发现 CLion 的可执行文件和它的图标就在 bin 目录下:

因此小明编写了在桌面新建了个 clion.desktop 文件,内容如下:

clion.desktop:

[Desktop Entry]

Name=CLion

Type=Application

Exec=/home/xiaoming/Apps/clion-2018.2.3/bin/clion.sh

Icon=/home/xiaoming/Apps/clion-2018.2.3/bin/clion

效果如下:

这里要提个很多人可能会忽视的细节。小明创建的 clion.desktop 文件名是 clion,Name的值为 CLion,虽然图标最终显示的是 Clion,但是这个 desktop 的文件全名仍然是 clion.desktop 而不是 CLion.desktop。

双击桌面的图标也可以正常启动 CLion,大功告成:

添加到启动器

仅仅将 desktop 文件添加到桌面其实还不够,作为一名开发者我们要考虑最坏的情况(万一哪位用户一不小心就把桌面的 desktop 文件给删除了),因此把你的应用程序发送到启动器才是较为推荐的方法(用户可以自行把启动器中的应用发送到桌面)。

启动器本质是一个位于 /usr/share/applications/ 路径下的目录,目录中存放着很多 .desktop 文件,我们只需将我们的应用图标复制一份到 /usr/share/applications/即可。

假设你的桌面有个 clion.desktop 文件:

sudo cp ~/Desktop/clion.desktop /usr/share/applications # 把 clion.desktop 复制一份到启动器目录下。

这时我们再打开启动器,会发现启动器中已经多了一个 CLion 的图标:

Categories 参数

desktop 支持的参数远远不止上诉4个,在 deepin 系统还有一个比较常用的参数就是 Categories。

Categories: 用于指定应用的分类(如果缺省则分类到其他应用)。

我们打开启动器并切换到分类视图,可以看到刚刚添加到 CLion 被分类到其他应用了,这显然不是我们想看到的:

deepin 启动器将所有应用分为10类,分别是网络应用、社交沟通、音乐欣赏、视频播放、图形图像、办公学习、阅读翻译、编程开发、系统管理和其他应用:

下面我们修改 clion.desktop 文件,使 deepin 启动器能够正确地将 CLion 分类为编程开发:

sudo gedit /usr/share/applications/clion.desktop

在最后一行增加 Categories=Development 并保存:

再打开启动器,可以发现 CLion 已经被正确地分类为编程开发分类下:

附表:Categories 对照表

Categories

分类

network

网络应用

Chat

社交沟通

Audio

音乐欣赏

Video

视频播放

Graphics

图形图像

Office

办公学习

Translation

阅读翻译

Development

编程开发

Utility

系统管理

相关主题

Linux下Desktop文件入门,解析Deepin Linux系统中的Desktop文件,附实例讲解相关推荐

  1. Linux下MongoDB的入门安装、配置与启动

    Linux下MongoDB的入门安装.配置与启动 mongo非关系性数据库 查询性能好,数据性不是特别重要的情况下使用 [root@test ~]# tar xf mongodb-linux-x86_ ...

  2. Linux下串口编程入门

    1. 串口简介 串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用.常用的串口是 RS-232-C 接口(又称 EIA RS-232-C)它是在 1970 年由美国电子工业协会(EI ...

  3. linux中.la是什么文件,linux下的so、o、lo、a、la文件有什么区别?

    linux下的so.o.lo.a.la文件有什么区别? o: 编译的目标文件 a: 静态库,其实就是把若干o文件打了个包 so: 动态链接库(共享库) lo: 使用libtool编译出的目标文件,其实 ...

  4. linux下测试ftp传输,linux下ftp命令使用详解---linux文件传输ftp命令

    linux下ftp命令使用详解---linux文件传输ftp命令 上一篇 / 下一篇  2010-12-18 09:15:35 / 个人分类:Linux ftp(file transfer proto ...

  5. linux脚本输出到文件,在linux下,如何将shell里输出的信息写入到文件里呢?

    在linux下,如何将shell里输出的信息写入到文件里呢? 在linux下,如何将shell里输出的信息写入到文件里呢? 通过下面的两个管道符可以实现些功能. >               ...

  6. linux在文件里写入,在linux下,如何将shell里输出的信息写入到文件里呢?

    在linux下,如何将shell里输出的信息写入到文件里呢? 通过下面的两个管道符可以实现些功能. >               将信息写入文件 >>             在现 ...

  7. linux 下删除批量文件命令,linux系统中批量删除文件与空文件删除的命令

    linux命令在系统中有两种类型:内置Shell命令和Linux命令.接下来是小编为大家收集的linux系统中批量删除文件与空文件删除的命令,希望能帮到大家. linux系统中批量删除文件与空文件删除 ...

  8. 视频教程-Linux下Shell从入门到精通完整版-Linux

    Linux下Shell从入门到精通完整版 京东商城运维架构师,京峰Linux云计算教学总监,担任国内多家知名社区运维专家网站Linux版主,专注Linux自动化运维,熟练LVS.Nginx,前端架构及 ...

  9. vim deepin linux,在Deepin 20系统中只能用vim/vscode编辑器来打开conf文件

    在Deepin 20系统中是不能用文本编辑器来打开conf文件的,比如实测打开dkms.conf会提示无效文件,如下图所示: 问题 使用vim/vscode等编辑器可以正常的打开/usr/src/hu ...

最新文章

  1. 极小连通子图和极大连通子图_强连通分量与拓扑排序
  2. 【Scala-spark.mlib】通过Maven工程导入Mlib库
  3. c# list集合根据某个字段去重_完美解决c# distinct不好用的问题
  4. “重金求来”Alibaba技术官并发编程笔记,附Java面经
  5. WTM重磅更新,LayuiAdmin免费用 and more
  6. python之Map函数
  7. 下列关于html5表单的多样输入方式,IT兄弟连 HTML5教程 HTML5表单 多样的输入类型1...
  8. C++socket编程(七):7.4 正则表达式分析用户请求
  9. HTTPS是对称加密还是非对称加密?
  10. 魅族MX4关闭系统升级Flyme6提示
  11. 【java虚拟机序列】java中的垃圾回收与内存分配策略
  12. Django中QuerySet的结果是否为空的判断
  13. dsp2812 linux开发板,dsp2812开发板自制编程流程
  14. A Re-evaluation of Temporal Knowledge Graph Completion Models under a Unified Framework
  15. Duplicate keys detected: ‘gggggg‘. This may cause an update error.的解决办法
  16. 左声道,右声道和立体声
  17. 苹果笔记本MBP 玩大型游戏秒退之解決方法
  18. 星巴克季节限定星怡杯樱花味拿铁升级回归
  19. 资本退潮后,CEEC国际经贸链带你穿越币圈熊市!
  20. 楚列斯基分解法、求矩阵范数的C++实现

热门文章

  1. Word2003的另类超级BT玩法(转)
  2. 怎么去除视频中的文字水印
  3. 强引用、软引用、弱引用、虚引用以及垃圾回收机制
  4. Python3获取代理IP
  5. 数据结构复习算法记录
  6. Mars3D开发基础学习:坐标系及坐标变换
  7. python中shell是什么意思中文翻译-python shell是什么东西
  8. source insght最佳配色方案
  9. WhatsApp被禁用操作教程|实操WhatsApp解封的过程|2023三月
  10. Spring cloud gateway 详解和配置使用