![是否有覆盖图标的主目录位置?](https://linux22.com/image/121796/%E6%98%AF%E5%90%A6%E6%9C%89%E8%A6%86%E7%9B%96%E5%9B%BE%E6%A0%87%E7%9A%84%E4%B8%BB%E7%9B%AE%E5%BD%95%E4%BD%8D%E7%BD%AE%EF%BC%9F.png)
有一些主目录位置可以补充/usr
位置。这些位置中的文件会覆盖其/usr
对应位置的文件。例如:
~/.local/bin
补充/usr/bin
~/.local/share/applications
补充/usr/share/applications
如果我想覆盖某个应用程序,我可以创建一个自定义.desktop
文件并将其存储在~/.local/share/applications
.如果我想调整应用程序的调用方式,这很有帮助,但如果我只想更改图标,那就太过分了。
此外:
- 如果原始
.desktop
文件很重要,我要么会失去原始功能,要么需要保持本地副本同步 - 我无法修改非应用程序图标(状态图标等)
我可以修改或维护图标/usr/share/icons/hicolor/48x48
,但我更愿意将它们保留在我的主文件夹中,这些将是倒退图标不压倒性的图标。
是否有一个补充的主文件夹位置/usr/share/icons
,我可以在其中存储应用程序图标和其他图标,并且它们会覆盖现有的主题图标?
例如,我正在使用 Papirus 主题,但我想使用我自己的图标记事本.svg对于文本编辑器应用程序。该图标在/usr/share/applications/org.gnome.gedit.desktop
as中定义Icon=gedit
。我应该放在哪里notepad.svg
?
答案1
历史等效项是~/.icons
,XDG 等效项是~/.local/share/icons
(严格来说,icons
中路径的子目录$XDG_DATA_DIRS
)。当您仅在文件中按名称指定图标时.desktop
,这依赖于图标主题,因此值得阅读图标主题规格。
理想情况下你应该使用xdg-icon-resource
在本地安装图标。
答案2
该xdg-icon-resource
程序对于“可缩放”SVG 图标显然是愚蠢的。它需要一个--size
参数,但不允许您指定scalable
大小。
我试图让 Alacritty 图标正常工作,结果如下:
$ mkdir -p ~/.local/share/icons/hicolor/scalable/apps
$ mv /tmp/Alacritty.svg ~/.local/share/icons/hicolor/scalable/apps/
解释一下,“hicolor”主题是大多数 Gnome 主题的后备、默认父主题。你可以在中看到它的定义/usr/share/icons/hicolor/index.theme
您可以通过以下方式找到您当前的主题
$ gsettings get org.gnome.desktop.interface icon-theme
'Yaru'
你可以看到它是如何从hicolor
顶部继承的:
$ head -4 /usr/share/icons/Yaru/index.theme
[Icon Theme]
Name=Yaru
Comment=A desktop adaptation of the Ubuntu mobile icons.
Inherits=Humanity,hicolor
例如,如果您尝试覆盖特定主题的图标,则需要将该图标放入该主题的目录中,因为将其放入hicolor
不会覆盖它。Yaru