为 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 教程,欢迎点赞、收藏和关注我 😉。如有问题,欢迎留言交流!

相关推荐
db_murphy6 分钟前
Oracle数据块8KB、OS默认认块管理4KB,是否需调整大小为一致?
linux
mCell3 小时前
从删库到跑路?这50个Linux命令能保你职业生涯
linux·windows·macos
杰克逊的日记3 小时前
GPU运维常见问题处理
linux·运维·gpu
誰能久伴不乏4 小时前
Linux系统调用概述与实现:深入浅出的解析
linux·运维·服务器
程序员学习随笔4 小时前
Linux进程深度解析(2):fork/exec写时拷贝性能优化与exit资源回收机制(进程创建和销毁)
linux·运维·服务器
mmoyula4 小时前
【RK3568 PWM 子系统(SG90)驱动开发详解】
android·linux·驱动开发
-SGlow-5 小时前
MySQL相关概念和易错知识点(2)(表结构的操作、数据类型、约束)
linux·运维·服务器·数据库·mysql
代码改变世界ctw5 小时前
Linux内核设计与实现 - 第14章 块I/O层
linux·运维·服务器
van叶~8 小时前
Linux网络-------1.socket编程基础---(TCP-socket)
linux·网络·tcp/ip
风吹落叶花飘荡8 小时前
Ubuntu系统 系统盘和数据盘扩容具体操作
linux·运维·ubuntu