为 Ubuntu 安装的软件创建桌面图标

如何为 Ubuntu 安装的软件创建桌面图标(.desktop 启动器)

在 Ubuntu 或其他 Linux 发行版中,我们常常通过压缩包(如 .tar.gz)或官方二进制方式安装软件。这种安装方式虽然灵活方便,但默认并不会将软件添加到系统菜单中,也没有快捷方式或图标。为了提升使用体验,我们可以手动创建 .desktop 启动器,将其添加到桌面或应用菜单中。

本文以 Postman 为例,介绍如何手动为一个非 APT 安装的软件创建桌面图标。


一、准备工作

假设你已经下载了 Postman-linux-x64.tar.gz,并解压到了如下目录:

bash 复制代码
~/tools/Postman/

该目录下有一个可执行文件:Postman


二、创建 .desktop 文件

.desktop 文件是 Linux 桌面环境识别的快捷方式格式,它定义了应用的名称、图标、可执行路径等。

步骤如下:

  1. 打开终端,输入以下命令创建桌面文件:
bash 复制代码
nano ~/.local/share/applications/postman.desktop
  1. 填入以下内容(根据你的实际路径调整):
ini 复制代码
[Desktop Entry]
Name=Postman
Comment=Postman API Tool
Exec=/home/yourname/tools/Postman/Postman
Icon=/home/yourname/tools/Postman/app/resources/app/assets/icon.png
Terminal=false
Type=Application
Categories=Development;
StartupNotify=true

注意:

  • Exec 是你的 Postman 可执行文件的绝对路径。
  • Icon 是一个 .png 格式图标文件,最好是 256x256 或更大,路径同样使用绝对路径。
  • yourname 替换为你的用户名。
  1. 保存并关闭(Nano 中按 Ctrl + O 保存,Ctrl + X 退出)。

三、赋予可执行权限

.desktop 文件添加可执行权限:

bash 复制代码
chmod +x ~/.local/share/applications/postman.desktop

四、刷新系统应用菜单

运行以下命令刷新图标缓存(可选):

bash 复制代码
update-desktop-database ~/.local/share/applications

现在你可以在 应用菜单 中搜索并启动 Postman 了。


五、可选:固定到启动器或桌面

  • 添加到桌面:

    bash 复制代码
    cp ~/.local/share/applications/postman.desktop ~/Desktop/
    chmod +x ~/Desktop/postman.desktop
  • 固定到 Dock(启动器):

    启动一次 Postman,然后右键点击图标,选择"添加到收藏夹"即可。


六、遇到图标不显示怎么办?

  • 确保 Icon= 路径正确,并指向一个真实存在的 .png 文件。
  • 图标路径不支持 ~,一定要使用绝对路径,例如 /home/yourname/xxx.png
  • 确保 .desktop 文件权限为可执行。

总结

通过创建 .desktop 文件,你可以将任何手动安装的软件集成到 Ubuntu 的图形界面中,实现和系统应用一样的启动体验。这种方法不仅适用于 Postman,也适用于其他如 Android Studio、JetBrains 系列、VSCode 手动版等非系统软件。

如果你希望再进一步,也可以通过 xdg-mimexdg-icon-resource 来注册 MIME 类型和图标。


如果你喜欢这类 Linux 教程,欢迎点赞、收藏和关注我 😉。如有问题,欢迎留言交流!

相关推荐
雪饼android之路1 小时前
【Android】 android suspend/resume总结(3)
android·linux
老黄编程1 小时前
ubuntu如何查看一个内核模块被什么模块依赖(内核模块信息常用命令)?
linux·运维·ubuntu
知北游天1 小时前
Linux网络:使用UDP实现网络通信(服务端&&客户端)
linux·网络·udp
半桔1 小时前
【网络编程】TCP 粘包处理:手动序列化反序列化与报头封装的完整方案
linux·网络·c++·网络协议·tcp/ip
<但凡.2 小时前
Linux 修炼:进程控制(一)
linux·运维·服务器·bash
✎﹏赤子·墨筱晗♪3 小时前
Ansible Playbook 入门指南:从基础到实战
linux·服务器·ansible
乌萨奇也要立志学C++4 小时前
【Linux】进程概念(六):进程地址空间深度解析:虚拟地址与内存管理的奥秘
linux·运维
月殇_木言8 小时前
Linux 线程
linux
wangjialelele8 小时前
Linux中的线程
java·linux·jvm·c++
2301_8000509910 小时前
DNS 服务器
linux·运维·笔记