我最近在电脑上安装了 MATLAB。我发现虽然我可以轻松地从终端启动 MATLAB,但没有可以双击运行它的可执行文件。因此,我创建了一个 Bash 脚本来运行 MATLAB,然后创建了一个 .desktop 文件并将其保存在 中/usr/share/applications/
。以下是该 .desktop 文件的内容:
[Desktop Entry]
Type=Application
Name=MATLAB
Hidden=false
Exec=Desktop/Programs/scripts/runMatlab.sh
Icon=/usr/share/icons/matlabIcon.jpg
Categories=Application;
如果我查看内部/usr/share/applications/
,我确实会看到一个名为 MATLAB 的可执行文件和相应的图标,如果我双击它,MATLAB 将正常运行。但是,如果我在 Dash 中输入 MATLAB,matlab.desktop 会显示为文本文件。它没有正确的名称 (MATLAB) 或正确的图标,如果我单击它,Gedit 将打开而不是正在执行的文件。
我怎样才能解决这个问题?
顺便说一下,我正在使用 Ubuntu 14.04。
答案1
如果你仔细看看 Dash,你会发现它matlab.desktop
并没有作为一个应用程序出现,而是文件 matlab.desktop
出现在搜索, 或者最近使用,因为您显然对其进行了编辑。
错误
原因是 Dash 并不认为它是有效的 .desktop
提交文件(至少)出于以下原因:
- 您不应该在
.desktop
文件中使用相对路径(Desktop/Programs/scripts/runMatlab.sh
是相对的),但是绝对路径。
其他可能的原因可能是图标路径无效,或者您在没有前面的情况下调用了脚本sh
(如果脚本不可执行,但考虑到您问题中的其他信息,情况似乎并非如此)。
笔记
另一件事是如果如果您将脚本存储在看似本地的目录中,则不应将文件存储
.desktop
在中/usr/share/applications
,而应存储在中~/.local/share/applications
。.desktop
如果您从 Dash 或启动器运行文件,则无需将其设为可执行文件。大多数启动器/usr/share/applications
都不~/.local/share/applications
是。只有当您将其放置在桌面上并从桌面运行它时才可以。
答案2
首先,将 .desktop 文件移动到/usr/share/applications/
(全局启动器,需要 root 权限才能移动文件)或~/.local/share/applications/
(仅适用于当前用户)。*
编辑: 当你运行desktop-file-install时,这不是必需的,因为它会自动将文件复制到/usr/share/applications/
然后,使用以下命令检查 .desktop 文件是否有错误desktop-file-install filename.desktop
(没有输出意味着没有错误,但即使有些警告也可能不会阻止启动器工作),然后
通过运行以下命令将其添加到 Unity dash 中sudo desktop-file-install filename.desktop
(编辑: 需要 root 权限才能访问存储全局启动器的 /usr/share/applications/)。请注意,此命令可能会向原始的.desktop 文件中添加一些行。
希望这能解决你的问题。你好!
(来源:https://help.ubuntu.com/community/UnityLaunchersAndDesktopFiles)