【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 步骤完成后,之后再使用双击桌面图标即可运行。

相关推荐
qq_452396231 小时前
第五篇:《Docker 容器生命周期管理》
运维·docker·容器
思麟呀1 小时前
C++工业级日志项目(四)日志落地
linux·开发语言·c++·windows
蜀道山老天师1 小时前
Docker 进阶:数据持久化与容器网络互联(数据卷、挂载目录、端口映射、自定义网络)
运维·网络·docker·云原生·容器
qq_白羊座1 小时前
CI/CD 与 DevOps 二
运维·ci/cd·devops
Ms_lan1 小时前
同方工业携手桂花网:广州某养老院智慧健康监测实践案例
运维·服务器·网络
sailing-data1 小时前
【OS zephyr】make与cmake
linux·运维·服务器
❀搜不到1 小时前
ubuntu 更新cmake
linux·运维·ubuntu
Mr_pyx1 小时前
TypeScript 完全入门指南:从基础到项目配置
linux·运维·ubuntu
LinuxRos2 小时前
从 MCU 到 Linux:机器人嵌入式OTA升级原理解密
linux·单片机·嵌入式硬件·物联网·iot