我最近刚刚下载了一款名为 Starsector 的游戏,我不想每次都进入该文件夹并运行./starsector.sh
,而是想创建一个桌面条目。下面是我当前的.desktop
文件,名为starsector.desktop
:
[Desktop Entry]
Version=1.0
Name=Starsector
GenericName=Starsector
Exec=sh -c "cd /usr/games/starsector && sudo ./starsector.sh"
Terminal=false
Icon=/usr/games/starsector/graphics/icons/cargo/ai_core_alpha.png
Type=Application
Categories=Game
我已将此文件移至~/.local/share/applications
.当复制该Exec
行并在我的 shell 中运行它时,它运行游戏完美,但是当单击图标时它什么也不做。
我尝试过的事情
我尝试设置 Terminal=true
Run desktop-file-validate
;不存在错误
向文件添加执行权限
将文件复制到桌面并单击“允许启动”
运行gio set myapp.desktop metadata::trusted yes
截至目前,文件权限为-rw-rw-r--
.我不知道这是文件权限问题还是游戏可执行文件本身的问题。
编辑:
我尝试过的更多事情
Exect=sh -c "cd /usr/game/starsector && sh ./starsector.sh
将所有者和组starsector.sh
从我自己的用户设置更改root
为我自己的用户将所有者和组starsector.desktop
从我自己的用户更改为root:root
答案1
更改模式来执行startsector.sh
sudo chmod +x /usr/games/starsector/starsector.sh
更改模式来执行startsector.desktop
sudo chmod +x /usr/share/applications/starsector.desktop
更改桌面文件中的 EXEC
Exec=/usr/games/starsector/starsector.sh
答案2
解决方案非常简单。我所要做的就是#!/bin/bash
在文件顶部添加.desktop
,一切都很完美。