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

Ubuntu / Debian 创建快捷方式启动提权

简述

在 Linux 系统中,.desktop 文件是 桌面入口文件,用于在桌面环境(如 GNOME、KDE)中定义应用程序的启动方式、图标、名称等信息。当你执行 touch idea.desktop 时,实际上创建了一个空的 .desktop 文件(例如为 JetBrains IDEA 或其他软件创建快捷方式)

  1. .desktop文件的作用

    • 图形化快捷方式:让应用程序出现在系统菜单、桌面或 Dock 中
    • 自定义启动参数:指定启动命令、工作目录、环境变量等
    • 统一管理应用入口:标准化应用在 Linux 桌面环境中的集成
  2. 文件内容结构

    一个典型的 .desktop 文件需要包含以下关键字段
[Desktop Entry]
Type=Application
Name=IntelliJ IDEA Community Edition
Icon=/home/idea-IC-202.7660.26/bin/idea.svg # 自己idea的icon位置
Exec=sudo /home/idea-IC-202.7660.26/bin/idea.sh # 自己idea的脚本位置,前面要加sudo
Comment=Capable and Ergonomic IDE for JVM
Categories=Development;IDE;
Terminal=true # 如果没有给自己账户root权限就需要这里设为true来启动终端输入密码
StartupWMClass=xxxx  # 需要使用命令查询填充
字段说明
Type=Application固定值,表示这是一个应用程序入口
Name显示在菜单中的应用程序名称
Exec实际执行的命令或脚本路径(必须绝对路径)
Icon应用程序图标的路径(支持 PNG、SVG 等格式)
Categories应用分类(如 Development、IDE),影响菜单归类
Terminal是否在终端中运行(true/false)
StartupWMClass将应用程序窗口与桌面入口(快捷方式)精准关联(避免任务栏/启动器中出现重复图标 / 精准匹配窗口类名),启动应用后,运行终端xprop WM_CLASS命令,然后点击对应窗口,得到 WM_CLASS(STRING) = “Navigator”, “firefox”,取第二个字符串
  1. 正确创建 .desktop 文件的步骤

    • 创建并编辑文件(内容如上)
      vim idea.desktop
      
    • 赋予执行权限
      chmod +x idea.desktop
      
    • 放置到标准目录
      • 用户级快捷方式(仅当前用户生效)
        mv idea.desktop ~/.local/share/applications/
        
      • 系统级快捷方式(所有用户生效)
        sudo mv idea.desktop /usr/share/applications/
        
  2. 常见问题

    • 问题 1:快捷方式不显示或无法启动
      • 原因:路径错误、权限不足或文件格式错误
      • 解决:
        • 检查 Exec 和 Icon 的路径是否正确;
        • 确保文件有可执行权限:chmod +x idea.desktop;
        • 验证文件语法:desktop-file-validate idea.desktop
    • 问题 2:图标不显示
      • 原因:图标路径错误或格式不支持
      • 解决:
        • 使用绝对路径指向图标文件(如 /opt/idea/bin/idea.png)
        • 确保图标文件存在且格式为 PNG/SVG

相关文章:

  • 开发体育赛事直播系统:炫彩弹幕直播间界面技术实现方案
  • PE文件导入表解析
  • Spring-事务属性
  • 一条命令配置移动端(Android / iOS)自动化环境
  • 9、Linux C 消息队列和信号灯
  • leetcode 2360. 图中的最长环 困难
  • 什么是动态代理?动态代理和静态代理的区别
  • 轮询、WebSocket 和 SSE:实时通信技术全面指南(含C#实现)
  • 从零开始打造HTML5拼图游戏:一个Canvas实战项目
  • hadoop集群配置-scp拓展使用
  • 基于WebSocket的金融数据实时推送系统架构设计对接多国金融数据API
  • SQL SELECT DISTINCT 语句详解:精准去重的艺术
  • Leetcode-100 二叉树引发的递归思考
  • SpringBoot整合Elasticsearch详细教程
  • [Html]overflow: auto 失效原因,flex 1却未设置min-height overflow的几个属性以及应用场景
  • 前沿技术有哪些改变生活新趋势
  • c#使用forms实现helloworld和login登录
  • java根据表达式获取对象中的值,设置值
  • UDP网络通信
  • PyTorch 深度学习实战(30):模型压缩与量化部署
  • 做手机旅游网站/网站模板大全
  • 徐州网站的优化/广告推广平台网站有哪些
  • 天津滨海新区疫情最新通知/海外seo是什么
  • 网站建设的经费预算报告/百度推广下载
  • wordpress文章填写关键词描述标题/连云港seo
  • 上海网站建设 润/seo优化收费