写于:2015-12-21		最近一次更新:2015-12-26

Intent:

想把新安装的软件生成一个快捷方式到桌面上 方便快速启动软件 (或者想在系统菜单里添加新安装的软件的图标) (或者把系统菜单里的启动图标添加到桌面)

Trouble:

右键新软件的启动程序,点击发送到桌面后, 桌面上确实生成了一个图标,但是, 有的软件双击图标能够正常打开软件, 有的软件双击图标没有任何反应,而拖到命令行里执行时 有路径错误之类的提示 而且所有的软件发送到桌面后在桌面上显示的图标都一样, 都默认使用的是文本样式的图标,而不是软件自带的图标

Oneway:

编写 Desktop Entry 文件即可解决问题 [ 如果系统菜单中已经存在某个软件的菜单,无需编写, 直接复制Desktop Entry 文件即可,参考下文Details部分 ] Desktop Entry 文件名称必须以 .desktop 后缀结束 比如刚下载的 Eclipse,解压后放到 /home/sman/Develop/eclipse目录下了 现在,要生成一个桌面快捷方式指向到 Eclipse 启动程序 方便以后使用 Eclipse 具体操作如下: 在桌面文件夹下新建 eclipse.desktop 文件 vim ~/Desktop/eclipse.desktop eclipse.desktop文件内容如下 [Desktop Entry] Name=Eclipse Exec=/home/sman/Develop/eclipse/eclipse Icon=eclipse Type=Application Terminal=false StartupNotify=false Categories=Development; 如果双击 Eclipse 桌面图标时,提示安全类信息时,标记为可执行即可

Details:

[Desktop Entry]:所有.desktop文件都以[Desktop Entry]开头 Name:快捷方式显示的名称 Exec:可执行文件的绝对路径 Icon:快捷方式显示的图标, 图标文件必须放在 ~/.local/share/icons 目录下 不要在icon项直接指向原图标文件的路径 否则,桌面上的图标可能会显示不正常, 要么显示很大要么显示很小; 在此例中 必须复制/home/sman/Develop/eclipse/icon.xpm 到 ~/.local/share/icons 目录下,并重命名为 eclipse.xpm 将Icon的值设置为 eclipse , 只需要填写图标名称,不需要填写绝对路径,不需要写拓展名 Type:指明类型,是应用程序,还是链接 Terminal:是否在命令终端中启动执行 StartupNotify:具体含义请看startup-notification Categories:应用程序在系统菜单中的类别 将 ~/Desktop/eclipse.desktop 文件 复制一份到 ~/.local/share/applications 目录下 即可将 Eclipse 添加到当前用户的系统菜单中 如果系统菜单中已经存在某个软件的菜单, 则 /usr/share/applications 目录下 或 /usr/local/share/applications 目录下 或 ~/.local/share/applications 目录下 必定存在相应的 .desktop 文件 直接把 .desktop 文件复制到桌面即可自动获得该软件的桌面快捷方式 如果希望所有用户都能在系统菜单中使用 Eclipse 那么可以使用root权限 把 eclipse.desktop 文件复制到 /usr/share/applications 目录下 把 图标文件复制到 /usr/share/pixmaps/ 目录下 即可 这里有更多的关于Desktop Entry的信息 Desktop Entry Specification Linux Desktop Entry 文件深入解析