linux - 如何为 Linux 桌面条目文件指定具有相对路径的图标?

标签 linux desktop shortcut

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

我想为图标使用相对路径而不是绝对路径。

我试过:

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

但这些都不起作用(仅 Icon=/path/to/app.svg)。如果无法指定相对路径并且我必须使用变通方法,我想我可以在每次运行 launcher.sh 脚本时在 .desktop 文件中重新生成图标路径。

最好的方法是什么?使用 sed 或其他带有伪正则表达式的替代实用程序,例如 Icon=([valid path chars]+)\n 也许?

最佳答案

经过更多研究后,据我所知,似乎无法在桌面条目文件中指定图标的相对路径。

我使用的解决方法是将以下代码添加到我的 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 选项来缩短上述代码,但我了解到我使用的解决方案更可靠。如果有人对此有更多信息,请发表评论。

关于linux - 如何为 Linux 桌面条目文件指定具有相对路径的图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3452746/

相关文章:

Linux 上的 Android - 无法在我的 Android 设备上测试我的应用程序

linux - 通过 SCP 将文件从 WWW 文件夹复制到外部服务器

linux - SVN 如何解决无序存储库

java - 在java中捕获系统默认编辑器关闭事件

javascript - 缩短同一变量的多个 if 语句

linux - 我在使用mpicc进行编译时遇到技术问题

Java 桌面应用程序和 Java EE?

android - 如何将文件从 Android 设备推送到 Linux 桌面?

c# - C# 控制台类的键盘快捷方式

android - 如何在应用程序中实现快捷方式