【Ubuntu系统指令启动】一招解决:Ubuntu 20.04 桌面双击 .desktop 文件不再“用文本编辑器打开”

一招解决:Ubuntu 20.04 桌面双击 .desktop 文件不再"用文本编辑器打开"

  • 前言
  • [1 创建.desktop文件](#1 创建.desktop文件)
    • [1.1 将文件放到 ~/.local/share/applications 目录](#1.1 将文件放到 ~/.local/share/applications 目录)
    • [1.2 创建文件](#1.2 创建文件)
    • [1.3 写入内容](#1.3 写入内容)
      • [1.3.1 写入SLAM建图运行指令的.desktop文件](#1.3.1 写入SLAM建图运行指令的.desktop文件)
      • [1.3.2 写入SLAM导航运行指令的.desktop文件](#1.3.2 写入SLAM导航运行指令的.desktop文件)
      • [1.3.3 写入GPS打点运行指令的.desktop文件](#1.3.3 写入GPS打点运行指令的.desktop文件)
      • [1.3.4 写入GPS导航运行指令的.desktop文件](#1.3.4 写入GPS导航运行指令的.desktop文件)
  • [2 脚本赋予权限](#2 脚本赋予权限)
  • [3 移动到桌面](#3 移动到桌面)
  • [4 设置系统信任标记](#4 设置系统信任标记)
  • [5 允许启动](#5 允许启动)
  • [6 双击图标运行](#6 双击图标运行)

前言

想让 Ubuntu 20.04 桌面上双击 .desktop 文件就能直接启动程序,而不是弹出文本编辑器? 其实只需要 三步 :

1️⃣ 在 ~/.local/share/applications/ 里创建或放好 .desktop 文件

2️⃣ 把它复制到桌面 ~/Desktop/

3️⃣ 在桌面上右键该文件 → "允许启动"
完成后图标恢复正常,双击即可运行。

具体而言,在 Ubuntu 20.04 中,要让 .desktop 文件在桌面上运行,最推荐的方法是:将文件放到 ~/.local/share/applications 目录,再复制到桌面,然后右键"允许启动" 。这样做能同时解决启动和图标显示的问题。

✅具体流程

找到 ~/.local/share/applications/ ->创建 .desktop文件 ->写入内容-> .desktop文件 权限修改->放到桌面路径 ~/Desktop/ -> .desktop文件 桌面运行,设置系统信任标记 -> 右键 "允许启动"

✅推荐的精简流程(可靠且最常用)

  • 在 ~/.local/share/applications/ 中创建 xxx.desktop,填写正确内容。
  • 复制该文件到桌面:cp ~/.local/share/applications/xxx.desktop ~/Desktop/
  • 在桌面上右键该文件 → "允许启动"(Allow Launching)
  • 双击即可运行。

1 创建.desktop文件

1.1 将文件放到 ~/.local/share/applications 目录

bash 复制代码
cd ~/.local/share/applications/

1.2 创建文件

📝 创建

bash 复制代码
# 1 创建SLAM建图运行指令的.desktop文件
sudo gedit mapping.desktop
# 2 创建SLAM导航运行指令的.desktop文件
sudo gedit slam_navigation.desktop
# 3 创建GPS打点运行指令的.desktop文件
sudo gedit get_gps_points.desktop
# 4 创建GPS导航运行指令的.desktop文件
sudo gedit gps_navigation.desktop

1.3 写入内容

📝 编辑 Desktop Entry

bash 复制代码
Desktop Entry 是程序的启动配置文件。以下是它的基础结构:
[Desktop Entry]:必需,表示文件开始。
Version=1.0:可选,文件规范版本。
Name:必需,应用程序名称。
Comment:可选,应用描述。
Exec:必需,程序的完整路径。启动脚本需先给脚本 chmod +x 权限。
Icon:可选,图标完整路径。
Terminal:必需,设置为 true 表示在终端运行;开启多个终端时需要设置为 false 。 
Type:必需,通常设为 Application。
Categories:可选,程序在菜单中的分类。
StartupNotify:可选,应用是否发送启动通知。

1.3.1 写入SLAM建图运行指令的.desktop文件

sudo gedit mapping.desktop

bash 复制代码
[Desktop Entry]
Version=1.0
Name=SLAM建图
Comment=Launch SLAM Navigation 3D Mapping
Exec=bash -c "source /opt/ros/noetic/setup.bash && gnome-terminal -- bash -c 'source /opt/ros/noetic/setup.bash && cd /home/cst/catkin_car && source devel/setup.bash && roslaunch autofleet base.launch; exec bash' & sleep 3 && gnome-terminal -- bash -c 'source /opt/ros/noetic/setup.bash && cd /home/cst/catkin_car && source devel/setup.bash && source /home/cst/catkin_ws/install_isolated/setup.bash && source devel/setup.bash --extend && roslaunch slam_navigation 3d_mapping.launch; exec bash'"
Icon=/home/cst/catkin_car/icons/3d_mapping.png
Terminal=false
Type=Application
Categories=Development;

1.3.2 写入SLAM导航运行指令的.desktop文件

sudo gedit slam_navigation.desktop

bash 复制代码
[Desktop Entry]
Version=1.0
Name=SLAM导航
Comment=Launch SLAM Navigation
Exec=bash -c "source /opt/ros/noetic/setup.bash && gnome-terminal -- bash -c 'source /opt/ros/noetic/setup.bash && cd /home/cst/catkin_car && source devel/setup.bash && roslaunch autofleet base.launch; exec bash' & sleep 3 && gnome-terminal -- bash -c 'source /opt/ros/noetic/setup.bash && cd /home/cst/catkin_car && source devel/setup.bash && roslaunch slam_navigation navigation.launch; exec bash'"
Icon=/home/cst/catkin_car/icons/slam_navigation.png
Terminal=false
Type=Application
Categories=Development;

1.3.3 写入GPS打点运行指令的.desktop文件

sudo gedit get_gps_points.desktop

bash 复制代码
[Desktop Entry]
Version=1.0
Name=GPS打点
Comment=Launch GPS POINTS
Exec=bash -c "source /opt/ros/noetic/setup.bash && gnome-terminal -- bash -c 'source /opt/ros/noetic/setup.bash && cd /home/cst/catkin_car && source devel/setup.bash && roslaunch gpsnavigation drawroute.launch; exec bash'"
Icon=/home/cst/catkin_car/icons/gps_points.png
Terminal=true
Type=Application
Categories=Development;

1.3.4 写入GPS导航运行指令的.desktop文件

sudo gedit gps_navigation.desktop

bash 复制代码
[Desktop Entry]
Version=1.0
Name=GPS导航
Comment=Launch GPS Navigation
Exec=bash -c "source /opt/ros/noetic/setup.bash && gnome-terminal -- bash -c 'source /opt/ros/noetic/setup.bash && cd /home/cst/catkin_car && source devel/setup.bash && roslaunch autofleet base.launch; exec bash' & sleep 3 && gnome-terminal -- bash -c 'source /opt/ros/noetic/setup.bash && cd /home/cst/catkin_car && source devel/setup.bash && roslaunch gpsnavigation navigation.launch; exec bash'"
Icon=/home/cst/catkin_car/icons/gps_navigation.png
Terminal=false
Type=Application
Categories=Development;

2 脚本赋予权限

启动脚本需先给脚本 chmod +x 权限

bash 复制代码
sudo chmod +x mapping.desktop 
sudo chmod +x get_gps_points.desktop 
sudo chmod +x gps_navigation.desktop 
sudo chmod +x slam_navigation.desktop 

3 移动到桌面

bash 复制代码
 cp get_gps_points.desktop ~/Desktop/
 cp gps_navigation.desktop ~/Desktop/
 cp mapping.desktop ~/Desktop/
 cp slam_navigation.desktop ~/Desktop/

4 设置系统信任标记

bash 复制代码
gio set get_gps_points.desktop metadata::trusted true
gio set gps_navigation.desktop  metadata::trusted true
gio set mapping.desktop   metadata::trusted true
gio set slam_navigation.desktop metadata::trusted true

5 允许启动

右键 "允许启动" 或者 "Allow Launching"

6 双击图标运行

1~5 步骤完成后,之后再使用双击桌面图标即可运行。

相关推荐
瑞雪兆丰年兮5 分钟前
JavaWeb-day11-SpringBootWeb案例(文件上传)
java·运维·服务器·javaweb·oss
那明眸似水22 分钟前
云原生项目三:Docker秒级启动NextCloud个人网盘存储办公系统
linux·运维·docker·云原生·容器
小南家的青蛙2 小时前
微服务体系下DevOps运维岗位面试方案设计
运维·面试·职场和发展·devops
知已难寻12 小时前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
默|笙12 小时前
【Linux网络】网络层协议 IP(1)理解报头、网段划分
linux·网络·tcp/ip
修己xj15 小时前
nslookup 使用指南:两种模式与常用查询技巧
linux
唠玖馆17 小时前
文件系统详解
linux·文件系统·ext2
GeW17 小时前
当Linux内核开始“确定性”,制造高端化才有了底层语法
linux
星恒随风18 小时前
MySQL 从零入门(三):表的约束详解
linux·服务器·数据库·笔记·mysql
Alluxio19 小时前
Alluxio + OCI:为 AI 工作负载实现亚毫秒访问延迟与可扩展吞吐
运维·数据库·人工智能·分布式·缓存·ai·语言模型