Linux创建桌面快捷方式(Desktop Entry)详解

前言

在linux桌面版下面有个和Windows系统一样的东西,就是桌面快捷方式,他可以使用户很快的在桌面上打开软件,而不用去软件所在的目录中启动软件。这样做极大的简化了用户对于电脑的操作。

引入

用过windows的都知道,在windows下创建桌面快捷方式只需要打开软件所在目录,然后鼠标把exe文件拖到桌面即可,乍一听上去这更像是linux的软链接,但实际上是在桌面创建一个文件,后缀名是.lnk,然后里面写入了这个文件所指向的exe应用程序,并含有启动参数,图标信息等参数

然而,这在linux下也是一样的,只不过在linux中桌面快捷方式的文件扩展名是.desktop,中文名即"桌面",在.desktop文件里面同样和windows一样包含了应用程序的执行路径,图标路径,启动参数等信息。

创建.desktop的两个目录

在linux下,有2个存储桌面快捷方式文件(.desktop)的目录,分别是 /home/user/.local/share/applications 和 /usr/share/applications

有人看到这里可能会一脸蒙逼

为什么要分两个路径???

合并在一起他不香吗???'

​编辑

我们都知道,在linux中肯定不止一个用户,最常见的就是root和我们自己的用户,我们接下来就以这两个用户来举例。

两个目录的区别

windows和linux都用过的都能很明显的感受到,在linux下的权限管理肯定更容易,因为有我们万能的sudo,但在windows下的管理员账户(Administrator)中,虽然说是管理员,但登陆到该账户下还是无法肆意的修改系统相关的文件和目录,在Administrator上面还有更高的System等,而这些账户以及权限我们无法正常的获取到,这些被windows封锁,受微软管控。

​编辑

​编辑

一不小心扯远了哈

​编辑

反正就是说在linux下的权限及用户,文件都有着极为方便的管理,还是那句话,没有什么是sudo解决不了的

好了,正式进入正题:

在linux下的桌面快捷方式分为 公共 和 私有,怎么理解呢

公共桌面快捷方式就是不管在哪个账户下都有的,换句话说就是所有用户的桌面上都有这个快捷方式。公共的快捷方式通常时包含系统级别的软件,如设置,磁盘管理等程序

私有桌面快捷方式是针对于用户的,如在A用户下创建了个快捷方式,则仅在该用户下才会显示该快捷方式,当切换到其他用户时,无法显示。私有快捷方式通常包含用户自己安装的软件,如qq,idea,vscode等程序

而上面所说到的两个目录 /home/user/.local/share/applications 和 /usr/share/applications 别对应 私有快捷方式 和 公共快捷方式 的目录

创建桌面快捷方式

这里以私有快捷方式为例,公共的也是一样,只不过操作时需要root权限。

进入 /home/user/.local/share/applications 路径里面的user是你用户名,根据你自己实际的来。

bash 复制代码
cd  /home/user/.local/share/applications

前面说过linux下的桌面快捷方式后缀名是.desktop,所以我们要创建一个后缀为.desktop的文件,名字任意,例如我要创建一个idea(一个java编辑器)的快捷方式为例,我这边直接使用vim(命令行模式下的文本编辑器)来创建,用自带的编辑器都一样。

复制代码
vim idea.desktop

没有idea.desktop这个文件,vim会自动创建

接着在里面写入以下内容

ini 复制代码
[Desktop Entry]
Version=233.13135.103
Name=IDEA
Comment=Write java code
Exec=/home/cancerai/Documents/application-data/idea/bin/idea.sh
Icon=/home/cancerai/Documents/application-data/idea/bin/idea.svg
Terminal=false
Type=Application

这是我自己的,大家根据自己的实际情况来修改

有人说不会??

​编辑

那么我们来详细将将这个文件里面有什么东西。

首先第一行

csharp 复制代码
[Desktop Entry]

他指定了这个文件是个桌面启动文件,什么意思呢??

其实就是在桌面创个快捷方式哈

从第二行往下,你肯定会注意到这样的一个书写格式:

ini 复制代码
XXX=XXX

没错,这就是.desktop文件的书写基本格式,学过编成的都知道,这是"键值对"的格式,没学过也不要紧,这边我来说一下,"键值对"就是由 "键" 和 "值" 组成的一对数据,对应的英文即 "key","value"。"值"应该很好理解,就好比a=1, 1就是a的值一样, 那么"键"就相当于a。

还有一个值得注意的是,.desktop中 键 的开头都是大写的。

我把所有key的中文都列出来会更容易理解其含义:

ini 复制代码
Version  版本
Version=233.13135.103

Name  名字
Name=IDEA

Comment  注释
Comment=Write java code

Exec  执行
Exec=/home/cancerai/Documents/application-data/idea/bin/idea.sh

Icon  图标
Icon=/home/cancerai/Documents/application-data/idea/bin/idea.svg

Terminal  终端
Terminal=false

Type  类型
Type=Application

版本(Version):即这个软件的版本号,不知道也可以随便写

名字(Name):快捷方式的名字

注释(Comment):对这个快捷方式的注解,不知道怎么写也可以随便写

执行(Exec):快捷方式所指向的执行文件

图标(Icon):快捷方式的图标文件

终端(Terminal):是否使用终端

类型(Type):启动类型

为了使快捷方式能够正常使用,上面红色标注的是必须的,其他均为可选

Tips:

当没有指定名字时,默认是 Unnamed

当没有指定图标时,默认是 系统图标

如下

​编辑

Note:

创建或者修改完 .desktop 文件不会立即生效,需要等几秒,如果长时间没反应,可以退出当前账户再登陆

最后

以上就是完整的.desktop教程,但里面的属性并不完整,只是最基础的结构,如果需要更多设置,可以参照社区: gnu-linux.readthedocs.io/zh/latest/C...

相关推荐
Lovyk10 分钟前
Linux 正则表达式
linux·运维
Fireworkitte1 小时前
Ubuntu、CentOS、AlmaLinux 9.5的 rc.local实现 开机启动
linux·ubuntu·centos
sword devil9002 小时前
ubuntu常见问题汇总
linux·ubuntu
ac.char2 小时前
在CentOS系统中查询已删除但仍占用磁盘空间的文件
linux·运维·centos
淮北也生橘123 小时前
Linux的ALSA音频框架学习笔记
linux·笔记·学习
华强笔记6 小时前
Linux内存管理系统性总结
linux·运维·网络
十五年专注C++开发7 小时前
CMake进阶: CMake Modules---简化CMake配置的利器
linux·c++·windows·cmake·自动化构建
phoenix09817 小时前
ansible部署lnmp-allinone
linux·运维·ansible
winds~8 小时前
【git】 撤销revert一次commit中的某几个文件
linux·c++
iY_n8 小时前
Linux网络基础
linux·网络·arm开发