我如何为Linux桌面文件指定一个带有RELATIVEpath的图标?

对于我的一个Linux应用程序,我有应用程序二进制文件,一个launcher.sh脚本(用于LD_LIBRARY_PATH)和一个.desktop文件,全部在同一个文件夹中。

我想使用相对path而不是图标的绝对path。

我试过了:

Icon=app.svg Icon=./app.svg Icon=$PWD/app.svg Icon=$(dirname %k)/app.svg 

但没有一个工作(只有Icon=/path/to/app.svg )。 如果无法指定相对path,并且我必须使用解决方法,那么我认为每次运行launcher.sh脚本时都可以重新生成.desktop文件中的图标path。

什么是最好的方法来做到这一点? 使用sed或一些其他的替代实用程序与伪正则expression式,如Icon=([valid path chars]+)\n也许?

Solutions Collecting From Web of "我如何为Linux桌面文件指定一个带有RELATIVEpath的图标?"

在做了更多的研究之后,就我所知,看起来好像不能在桌面输入文件中指定图标的相对路径。

我使用的解决方法是将以下代码添加到我的launcher.sh脚本的末尾:

 mv myapp.desktop myapp.desktop-bak sed -e "s,Icon=.*,Icon=$PWD/app.svg,g" myapp.desktop-bak > myapp.desktop rm myapp.desktop-bak 

这将每次运行启动脚本时更新图标的路径,并且由于.desktop文件指向启动脚本,因此单击.desktop文件可以有效地更新其图标。

我知道你可以使用cat或-i选项来缩短上面的代码,但我读过,我使用的解决方案更可靠。 如果有人有进一步的信息,请发表评论。