前言
在Linux的世界里,定制化是其魅力之一。无论是桌面环境、主题、图标,还是启动器,用户都可以根据自己的喜好进行个性化设置。Pop!_OS,作为一款基于Ubuntu的发行版,以其现代化的用户界面、对游戏玩家的优化以及对开发者的友好性而受到欢迎。然而,即便是如此出色的操作系统,有时我们也会遇到一些需要手动调整的情况,比如在启动器中添加自定义程序的图标。
通常,当我们安装一个新的应用程序时,系统会自动为其在启动器中创建一个快捷方式,并配以相应的图标。但并非所有程序都能如此“智能”。有些程序,特别是那些我们手动编译安装的、绿色免安装的,或者是一些脚本,它们可能不会自动出现在启动器中。这时,我们就需要手动为其创建启动器条目,并指定一个漂亮的图标,以便于我们快速启动这些程序。
无论是在Windows上,还是Linux,或者安卓这些我们常用的操作系统上,一些应用程序的快捷方式放在桌面或者启动器,只需要简单的点击就可以启动,但是在Linux上,有相当多的程序是通过命令行启动的,这种方式对于某些人来说确实挺快,但是用惯了Windows就不太适应了,而且在桌面环境下,还是快捷图标更加友好,因此探索了一波Linux创建启动器图标。
手动添加自定义程序图标,看似是一个小小的操作,但其背后却蕴含着Linux系统的一些基本原理和技巧。这不仅能让我们更深入地了解Linux的文件系统结构、桌面环境的工作方式,还能提升我们解决问题的能力。
本文将详细介绍在Pop!_OS的启动器中添加自定义程序图标的方法。我们将从.desktop
文件的概念讲起,逐步深入到如何创建、编辑和安装这些文件。无论您是Linux新手,还是有一定经验的用户,相信都能从中获益。
在开始之前,让我们先来了解一些相关的背景知识:
.desktop
文件: 在Linux桌面环境中(如GNOME, KDE, XFCE等),.desktop
文件是一种用于描述应用程序启动信息的标准格式。它包含了应用程序的名称、执行命令、图标路径、类别等信息。系统通过读取这些文件,来在启动器、菜单或面板中显示应用程序的快捷方式。- 文件系统结构: Linux的文件系统是一个树状结构,
/
是根目录,所有其他目录都位于根目录之下。了解一些关键目录的位置,对于我们创建和管理.desktop
文件至关重要。例如:/usr/share/applications/
:存放系统级别的.desktop
文件,所有用户都可以使用。~/.local/share/applications/
:存放用户级别的.desktop
文件,仅当前用户可以使用。
- 文本编辑器: 编辑
.desktop
文件需要使用文本编辑器。Pop!_OS自带了GNOME的文本编辑器(gedit),您也可以使用其他您喜欢的编辑器,如Vim、Nano、VS Code等。
掌握了这些基础知识,我们就可以开始动手实践了。
一、创建快捷方式
在创建快捷方式之前,创建的快捷方式是所有用户都要看到还是仅自己可见,也就是说创建系统级图标还是用户级图标。
如果是用户级图标,那么路径为.local/share/applications/
,
如果是系统级图标,那么路径为/usr/share/applications
,
进入该路径以后,你会看到一堆.desktop
文件
这些东西就是快捷方式的本来面目了。这里面有一些文件是需要了解一下的。
context-menus
文件夹是存放一些右键菜单的。pop-mimeapps.list
,gnome-mimeapps.list
,defaults.list
以及mimeapps.list
都是指定文件的默认执行方式的。
你在系统级目录下新建desktop
文件,创建的就是系统级图标,如果在用户级目录下新建desktop
文件,那么创建的就是用户级图标。
二、快捷方式参数
以安装Jetbrains的Idea为例,我从官网下载了压缩包,并且解压到了/home/pang/workspace/env/idea-IU-232.8660.185
路径,此时有个文件Install-Linux-tar.txt
提示如何在Linux上安装,但是实际上也只说进入bin
目录运行
./idea.sh
对于这种运行方式,使用体验是比较差的,因此需要创建个快捷方式启动,我选择的是系统级快捷方式,然后创建个idea.desktop
,内容如下
[Desktop Entry]
Name[tr]=idea
Name[zh_CN]=idea
Exec=/home/pang/workspace/env/idea-IU-232.8660.185/bin/idea.sh
Terminal=false
Type=Application
Icon=/home/pang/workspace/env/Icon/idea.png
Comment=idea
Categories=Utility;
可见图标就创建好了,并且功能运行正常。
简单介绍下这个文件中参数的作用,
Name
代表显示名字,并且可以指定语言,比如Name[zh_CN]
、Exec
是可执行文件,或者命令Terminal
是否显示终端Type
应用程序类型Icon
图标Comment
描述Categories
分类
如果你想要查看所有相关的参数,建议查看大佬玩转智能机器人的文章,或者直接去官网查看(能看懂英文)。
官网https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
三、添加右键菜单和注册MIME
其实有很多功能是用不到的,所以挑两个可能用到的说一下,首先给出一份较为完整的文件例子
[Desktop Entry]
Version=1.0
Type=Application
Name=Foo Viewer
Comment=The best viewer for Foo objects available!
TryExec=fooview
Exec=fooview %F
Icon=fooview
MimeType=image/x-foo;
Actions=Gallery;Create;
[Desktop Action Gallery]
Exec=fooview --gallery
Name=Browse Gallery
[Desktop Action Create]
Exec=fooview --create-new
Name=Create a new Foo!
Icon=fooview-new
在这个文件中,MimeType=image/x-foo;
注册了MIME,然后就可以在指定默认执行程序那写了
以及一些右键菜单也可以看出来是怎么写的,大概影响的是这几行
……
Actions=Gallery;Create;
[Desktop Action Gallery]
Exec=fooview --gallery
Name=Browse Gallery
[Desktop Action Create]
Exec=fooview --create-new
Name=Create a new Foo!
Icon=fooview-new
由Action
指定有几个菜单选项,然后下面用[Desktop Action ActionName]
来指定,且有三个参数
Exec
执行的命令Name
显示名字Icon
图标
四、 故障排除
如果在启动器中没有看到你的自定义程序图标,或者点击图标无法启动应用程序,请尝试以下步骤进行故障排除:
- 检查路径: 确保
Exec
和Icon
字段中的路径是正确的。 - 检查权限: 确保你的可执行文件具有执行权限。你可以使用
chmod +x /path/to/your/executable
命令来添加执行权限。 - 刷新桌面环境: 有时,桌面环境可能需要刷新才能识别新的
.desktop
文件。你可以尝试注销并重新登录,或者重启你的计算机。 - 使用
desktop-file-validate
命令: 这个命令可以用来检查.desktop
文件的语法是否正确。在终端中输入desktop-file-validate /path/to/your/desktop/file
即可。 - 查看系统日志:如果程序启动失败,可以查看系统日志来获取错误信息,通常可以使用
journalctl
命令来查看。
五、 高级用法
除了基本的字段外,.desktop
文件还支持一些高级选项,例如:
Actions
:定义额外的操作,例如“在新窗口中打开”、“以管理员身份运行”等。MimeType
:指定应用程序可以处理的文件类型。Keywords
:定义一些关键词,用于在启动器中搜索应用程序。StartupNotify
:启用启动通知,当应用程序启动时显示一个提示。DBusActivatable
:指定应用程序是否可以通过D-Bus激活。
如果你需要使用这些高级选项,可以参考freedesktop.org上的.desktop
文件规范文档。
总结
本文详细介绍了.desktop
文件的结构和各个字段的含义,并提供了创建、编辑和安装.desktop
文件的步骤。同时,我们还讨论了一些故障排除的方法和高级用法。希望这些信息能帮助您更好地定制您的Pop!_OS桌面环境。
掌握了这一技巧,你就可以自由地管理你的应用程序启动器,让你的Linux桌面更加个性化、更加高效!