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

相关推荐
DLYSB_6 分钟前
《从零开始搭建机房轻量化“声光告警”系统:基于 HTTP API 与 TTS 的运维实践》
运维·网络协议·http·报警灯
阿成学长_Cain7 分钟前
Linux talk 命令详解:经典终端实时聊天工具,无需图形界面即可对话
linux·运维·前端
一拳一个娘娘腔34 分钟前
【后渗透-Linux篇】Linux 提权与逃逸:从 www-data到 root的蜕变
linux·运维·服务器
jieyucx36 分钟前
零基础通关:Shell 编程核心语法全景详解
linux·运维·编程·shell
杨运交1 小时前
[045][Crypto模块]设计一个可扩展的加解密框架:策略模式与工厂模式实战
linux·运维·策略模式
shx_wei1 小时前
从函数调用到进程替换:使用 execl、CMake 与 PowerShell 构建一个多可执行程序
linux·c语言·windows·c
Dlrb12111 小时前
信息查询Web服务器-->电子商城信息查询项目
linux·服务器·数据库·html·嵌入式·epoll·数据查询
纳兰青华1 小时前
在 PVE 上通过 LXC 部署 Ubuntu 24.04:为 OpenClaw 打造轻量高效的 AI 环境
linux·ai编程
Auv开心2 小时前
Ubuntu 20.04 默认视频播放器(Totem)无法播放 MP4 文件,通常是因为缺少多媒体编解码器。以下是几种解决方法:
linux·ubuntu·音视频