为什么 freedesktop .desktop 文件不允许相对路径?

Chr*_*ian 7 desktop desktop-environment icons freedesktop

.desktop文件已成为事实上的标准,以轻松访问应用程序在Linux桌面,用不是从否则GUI和未使用的应用程序图标,但只有在.desktop文件中指定的图标许多发射器很容易启动的可执行文件。

那么,为什么似乎不可能使用 .desktop 文件来指定其可执行文件的相对路径,有没有办法解决这个问题?

当发布不想强迫用户安装的软件时,相对路径是启用此功能的唯一方法。

AppImage 似乎通过在用户第一次运行时安装 .desktop 文件来解决这个问题,这似乎是一种为具有灵活路径的软件启用图标和启动器的笨拙方式。相对路径将是一个更好的方法。为什么这个解决方案在 Linux 桌面上是不可能的?这似乎不太可能仅仅是一个疏忽,而是我错过了这个决定背后的更深层次的原因。

小智 7

您可以使用内联 shell 脚本来计算路径:

Exec=sh -e -c "exec \\"\\$(dirname \\"\\$0\\")/some_app\\"" %k
Run Code Online (Sandbox Code Playgroud)

是的,需要两级转义。


use*_*316 -2

为了理解这种情况,问问自己,“相对于什么?”。这些.desktop文件用于 GUI 上下文中,不能假定基本路径可以根据您可能考虑放入文件中的任何相对路径构建绝对路径.desktop

相对路径仅在可以转换为明确位置(绝对路径)时才有用,并且需要参考点。这不能在任何通用 GUI 上下文中假设。

  • 相对于 .desktop 文件的文字路径,对于尚不需要的系统管理桌面文件,不需要使用它...... (4认同)