当前位置: 首页 > article >正文

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

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

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

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


一、准备工作

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

~/tools/Postman/

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


二、创建 .desktop 文件

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

步骤如下:

  1. 打开终端,输入以下命令创建桌面文件:
nano ~/.local/share/applications/postman.desktop
  1. 填入以下内容(根据你的实际路径调整):
[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 文件添加可执行权限:

chmod +x ~/.local/share/applications/postman.desktop

四、刷新系统应用菜单

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

update-desktop-database ~/.local/share/applications

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


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

  • 添加到桌面:

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

http://www.lryc.cn/news/2391957.html

相关文章:

  • uni-app 中开发问题汇总
  • https下git拉取gitlab仓库源码
  • 距离计算范围查找距离排序
  • PS linux 基础篇1-AXI_DMA
  • AI大模型学习三十、ubuntu安装comfyui,安装插件,修改返回405 bug,值得一看喔
  • 11高可用与容错
  • 百度之星2024 初赛第一场 补给
  • Collection集合遍历的三种方法
  • Taro on Harmony C-API 版本正式开源
  • 知识隔离的视觉-语言-动作模型:训练更快、运行更快、泛化更好
  • [ARM][架构] 02.AArch32 程序状态
  • Dockerfile正确写法之现代容器化构建的最佳实践
  • React---day4
  • ArkUI(方舟UI框架)介绍
  • 【Bug】定时任务中 Jpa Save 方法失效
  • 英语科研词汇现象及语言演变探讨
  • C# 打印PDF的常用方法
  • 若依微服务的定制化服务
  • Axios 如何通过配置实现通过接口请求下载文件
  • 小表驱动大表更快吗,不是
  • 20250529-C#知识:运算符重载
  • 【HW系列】—目录扫描、口令爆破、远程RCE流量特征
  • 如何在WordPress网站中添加相册/画廊
  • 【NLP基础知识系列课程-Tokenizer的前世今生第一课】Tokenizer 是什么?为什么重要?
  • Codeforces Round 1025 (Div. 2)
  • Ubuntu20.04操作系统ssh开启oot账户登录
  • 类欧几里得算法(floor_sum)
  • 每日Prompt:卵石拼画
  • 湖北理元理律师事务所观察:债务优化如何成为民生安全网
  • AI时代新词-机器学习即服务(MLaaS)