在我的桌面上,我有一个.desktop文件。如果输入:
Icon=/home/ianbell/Pictures/myLogo.png
.desktop文件的图标更改(预期结果)。
但是,如果我输入:
Icon=~/Pictures/myLogo.png
它不起作用。
这不是~/
捷径/home/$USER
吗?
在我的桌面上,我有一个.desktop文件。如果输入:
Icon=/home/ianbell/Pictures/myLogo.png
.desktop文件的图标更改(预期结果)。
但是,如果我输入:
Icon=~/Pictures/myLogo.png
它不起作用。
这不是~/
捷径/home/$USER
吗?
Answers:
在.desktop
文件中,您需要使用绝对路径和完整路径。因此~
不扩展。
这是一个常见的错误:)
在文件管理器,菜单等中显示的图标。如果名称是绝对路径,则将使用给定的文件。如果名称不是绝对路径,则将使用“ 图标主题规范”中描述的算法来定位图标。
和这里:
图标字段是启动程序应使用的图标,代表应用程序。目录下的所有图标
/usr/share/pixmaps
都不需要指定完整路径,但文件名不带扩展名。例如,如果图标文件为/usr/share/pixmaps/wallch.png
,则“图标”字段应仅为“ 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
会很好的工作
简而言之,由于定义了文件应该如何工作的规范,因此.desktop
文件的Icon=
路径可以理解绝对路径,而不能理解波浪号扩展。.desktop
~
)扩展为$HOME
环境变量的地方,这是您在命令提示符下与之交互的常用登录shell。.desktop
文件与Shell并非同一事物,它是纯文本配置文件,因此即使.desktop
文件和Shell都可以在Linux上找到,它也不一定能以相同的方式工作。.desktop
的文件应该是工作,是在Freedesktop的的定义桌面项规范关于的桌面条目规范Icons
说:
如果名称是绝对路径,则将使用给定的文件。
这就是为什么您能够使用绝对路径的原因,因为它已包含在规范中
如果名称不是绝对路径,则将使用“ 图标主题规范”中描述的算法来定位图标。
当我们检查Icon Theme Specification时,没有什么说它必须遵循POSIX的波浪符号扩展。
因此,由于关于Freedesktop的规范.desktop
的Icon=
设定,绝对路径都支持,但你发现,POSIX波浪-TO-$ HOME扩展都没有。