.desktop 文件中的图标路径

.desktop 文件中的图标路径

我的桌面上有一个 .desktop 文件。如果我输入:

Icon=/home/ianbell/Pictures/myLogo.png

.desktop 文件的图标发生了变化(预期的结果)。

但是,如果我输入:

Icon=~/Pictures/myLogo.png

它不起作用。

这不是~/快捷方式吗/home/$USER

答案1

.desktop 文件中路径的使用

.desktop文件中,您需要使用绝对满的路径。因此~不展开。

这是一个常见的错误:)

关于图标的例外情况也进行了描述这里

在文件管理器、菜单等中显示的图标。如果名称是绝对路径,则将使用给定的文件。如果名称不是绝对路径,则使用图标主题规范将用于定位图标。

这里

Icon 字段是启动器应使用的图标,代表应用程序。目录下的所有图标 /usr/share/pixmaps不需要指定其完整路径,但需要指定不带扩展名的文件名。例如,如果图标文件是 /usr/share/pixmaps/wallch.png,则 Icon 字段应该只是“wallch”。所有其他图标都应指定其完整路径。

更多信息

.desktop文件中:

Icon=队伍中,你允许使用空格:

Icon=/home/jacob/Thema/icon/some folder/some icon.png

很好。

然而

Exec=队伍中,你是不是允许使用空格,除非争论。在所有其他情况下,您需要用空格引用路径步骤:

Exec=/home/jacob/Bureaublad/some folder/application

将会失败,而

Exec="/home/jacob/Bureaublad/some folder/application"

或者

Exec=/home/jacob/Bureaublad/"some folder"/application

会很好用

答案2

简而言之,.desktop文件的Icon=路径可以理解绝对路径,但不能理解波浪符号扩展,因为规格它定义了.desktop文件应该如何工作。

波浪符号扩展

  • 例如,在 bash 中,你经常会看到环境变量~中波浪符号 ( ) 的扩展$HOME,这是你在命令提示符下与之交互的常用登录 shell
  • bash 和其他符合 POSIX 标准的 shell 执行与以下操作一致的波浪线到 $HOME 扩展POSIX 规范贝壳

.desktop 文件

  • 但是,.desktop文件与 shell 并不相同,它是一个纯文本配置文件,因此,即使.desktop文件和 shell 都可以在 Linux 上找到,它们的工作方式也不一定相同。
  • .desktop的文件应该如何工作,在 Freedesktop 的桌面入门规格

关于 的桌面入口规范Icons指出:

如果名称是绝对路径,则将使用给定的文件。

这就是为什么你可以使用绝对路径,因为它已被规范所涵盖

如果名称不是绝对路径,则图标主题规范将用于定位图标。

当我们检查图标主题规范,没有任何内容表明它必须遵循 POSIX 的波浪号扩展。

概括

因此,由于 Freedesktop 规范中关于.desktopIcon=设置,绝对路径是受支持的,但正如您所发现的,POSIX 波浪线到 $HOME 扩展不受支持。

相关内容