为新应用程序创建一个 .desktop 文件

我刚安装了最新版本的UGENE。它运行良好,但是为了使用它,我必须在终端中输入以下命令:cd ugene-1.11.5/,然后执行./ugene -ui来启动UGENE图形界面。
这样太麻烦了。我希望能够在Ubuntu 12.04上建立一个UGENE的.desktop文件,这样我只需从Unity启动器中打开它。
不确定是否有帮助,但网站上说:默认情况下,ugene脚本会启动UGENE的命令行版本。
以下是我目前拥有的内容(不确定是否正确):
[Desktop Entry]
Version=1.0
Name=my Unipro UGENE
GenericName=Integrated Bioinformatics Suite
Comment=Unipro UGENE is a cross-platform visual environment for DNA and protein sequence analysis.
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Exec=/home/samuel/ugene-1.11.5 ./ugene -ui -c %F
Icon=/usr/share/icons/hicolor/scalable/apps/ugene.svg
Type=Application
Terminal=true
Categories=Utility;Development;
StartupWMClass=UGENE

我将名为my Unipro UGENE的启动器添加到我的Unity栏,并尝试打开它,但它没有出现。我一定是漏掉了什么。我不知道StartWMCClass字段应该是什么,也不知道我是否输入了正确的MimeType

1你可以省略那些。什么是“添加路径”?可能不需要...在执行中放置“home/samuel/ugene-1.11.5/ugene -ui -c %F”。 - Web-E
可能需要在CLI版本中设置Terminal=true。至少fales是不正确的。 - Takkat
谢谢你的建议。我今晚会进一步研究一下。如果我弄不明白,我想我会在11个小时后设立悬赏。希望大家都做好了功课!! - cooldood3490
4作为帮助任何想要创建.desktop文件的人的补充,可以使用以下命令:desktop-file-install THE_DESKTOP_FILENAME_HERE.desktop。这个命令会检查文件中的任何错误,并且如果一切正常,会将文件复制到正确的位置/usr/share/applications并重新加载Unity界面。 - Lucas Marques
2个回答

参考Freedesktop的桌面入口规范,但这应该可以工作:
[Desktop Entry]
Version=1.0
Name=Unipro UGENE
Comment=Unipro UGENE is a cross-platform visual environment for DNA and protein sequence analysis.
Exec=/home/samuel/ugene-1.11.5/ugene -ui
Path=/home/samuel/ugene-1.11.5/
Icon=/usr/share/icons/Humanity/apps/32/access.svg
Terminal=false
Type=Application
Categories=Utility;Development;

一些注意事项:
版本
应为1.0,它指的是.desktop文件的版本,而不是程序版本。
名称
应在菜单上显示的名称。
执行
可执行文件的完整路径。无需使用'.',它只是表示当前目录。
路径
当运行条目时,将设置为当前目录的目录。通常情况下,您不需要设置它,但我已经添加了它以防万一。它与在命令行中使用'cd'相同。
图标
用于该文件的图标文件的路径,您放置的图标可能不存在,我已将其更改为通用图标。您应将其更改为要使用的图标文件。
Mimetype 指定此程序能够打开的文件类型。我将其留空。

StartupWMClass

  • 只有某些程序需要,通常是Java程序需要,但只有在遇到问题时才设置它。

要从Dash使用桌面文件,您需要将其复制到/usr/share/applications,以便任何用户都能够使用它(您需要管理员权限),或者将其复制到~/.local/share/applications(其中~表示您的用户目录),如果您只想让一个用户可用。


1太棒了,工作得很顺利。感谢提供规格链接,并详细描述您添加了哪些内容。这样我就知道下次想要创建 .desktop 文件时该怎么做了。 - cooldood3490
4只是想提醒一下,我已经修复了桌面文件中的一个常见错误;当使用多个值时,需要包含尾部的分号。 - Cas
这是什么意思?#!/usr/bin/env/ xdg-open - Rahal Kanishka
这是一个shebang,https://en.wikipedia.org/wiki/Shebang_(Unix),它告诉计算机在尝试将其作为脚本运行时使用xdg-open来打开文件。 - Javier Rivera
谢谢,有了这个,我成功让"声音"设置在Albert中显示出来了:D(参考链接:https://github.com/albertlauncher/albert/issues/877) - SidOfc
要设置StartupWMClass,请参考这个问题 - Zatigem

不需要手动添加 .desktop 文件,你可以使用一个小的图形界面工具 alacarte(主菜单)来为你完成这个操作。

安装方法

sudo apt install alacarte

alacarte Screenshot


4即使在2019年,仍然是最好的、用户友好的选择! - Miracles Happen
5我永远记不住这个程序的名字。我希望他们把它叫做“启动器编辑器”或者“桌面文件创建者”,因为每次打开之前我都要先谷歌一下。 - Jonathan
5@Jonathan,谢天谢地,你可以使用alacarte来更改它的名称;-) - PhoneixS
3我始终无法理解为什么这不是桌面管理器的一部分——应该有一个“创建快捷方式”的功能或类似的东西。在每次新安装中,我都要花几个小时去寻找这个实用程序的名称。 - user309383
相比其他选项仍然是最佳选择。谢谢。 - Ankit Tale
非常感谢您提供的详细信息。在 Cinnamon 5.2.7 版本中,您可以通过在桌面上右键单击来创建一个启动器。它似乎是内置在桌面应用程序中的。 - Antoni