为什么我的 .desktop 文件可以通过双击执行,但不能通过菜单执行?

为什么我的 .desktop 文件可以通过双击执行,但不能通过菜单执行?

我已经安装了超光速:超越光速在我女朋友的 Lubuntu 机器上创建了一个 .desktop 文件奇怪的是,这个程序无法通过“游戏”下的菜单项启动

如果我导航/home/andi/.local/share/applications/电脑管理并双击FTL Faster Than Light.desktop 游戏发布没问题。我知道菜单项是通过 .desktop 文件生成的,所以为什么它不能从菜单启动?

这是我创建的 .desktop 文件:FTL 超越光速.桌面

答案1

根据您对 Alex L. 评论的回复,FTL 似乎正在您当前的工作目录中寻找各种东西,因此如果您使用文件浏览器或使用 cd 进行导航,它就可以正常工作。由于菜单不执行这些操作,因此它无法找到某些东西。

尝试编辑 .desktop 文件,使该Exec行看起来像这样:

sh -c "cd /home/andi/.local/share/FTL/ && ./FTL"

这将首先切换目录,并让 FTL 找到启动所需的一切。

答案2

将以下内容粘贴到文本编辑器中:

#!/bin/bash
cd /home/andi/.local/share/FTL/
./FTL
exit 0

将其保存为FTL-launch~/bin/ 并将其设置为可执行文件。然后将 .desktop 文件中的 exec 行更改为

Exec=FTL-launch

当然,这是基于 ImaginaryRobots 的回答;我曾使用类似的启动器来运行一些在 wine 中运行的旧 Windows 游戏,这些游戏需要从其目录中启动。

如果您没有 ~/bin,则只需创建一个 - 但您可能需要注销并再次登录才能使其正常工作。

答案3

您安装了桌面文件吗?据我所知,桌面文件需要通过以下方式安装:

sudo desktop-file-install myfile.desktop

当然,在这种情况下,myfile.desktop 应该是“FTL Faster Than Light.desktop”。

您还可以尝试使用 alacarte(也称为主菜单),您可以在其中通过 GUI 创建启动器。

答案4

您可以尝试将.desktop文件设为可执行文件。虽然它不是 Lubuntu 的一部分,但我知道 Nautilus 不会运行任何不可执行的桌面文件。也许 Lubuntu 的菜单也需要这样做。

另外,我会尝试从文件名中删除空格.desktop

相关内容