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

相关推荐
用户9718356334668 分钟前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪1 小时前
linux 拷贝文件或目录到指定的位置
linux
大树8817 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠17 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质18 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush418 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行52018 小时前
Linux 11 动态监控指令top
linux
Inhand陈工19 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智19 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩19 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言