如何使APT管理的应用(如Chrome)的自定义图标在系统更新后持久保留
作为一个折腾过Linux桌面美化的老鸟,我完全懂你这种想让图标完美适配桌面主题,却被系统更新一次次打回原形的烦躁!别担心,有几个靠谱的方法能让你的自定义图标稳稳存活,再也不用每次更新后重复操作:
方法一:利用用户级图标目录(最推荐)
系统级的/usr/share/icons目录属于APT包管理的范围,更新时肯定会被覆盖,但用户目录下的文件完全不受系统更新影响。我们可以把自定义图标放在用户专属的图标目录里,系统会优先加载这里的图标:
先创建对应分辨率的目录结构(比如你之前用的256x256分辨率):
mkdir -p ~/.local/share/icons/hicolor/256x256/apps如果你需要多个分辨率的图标,就把
256x256换成对应的尺寸(比如128x128、512x512),重复创建目录即可。把你的自定义Chrome图标文件(比如命名为
google-chrome.png)复制到这个目录里:cp /path/to/your/custom-icon.png ~/.local/share/icons/hicolor/256x256/apps/google-chrome.png更新图标缓存,让系统识别到新图标:
gtk-update-icon-cache -f ~/.local/share/icons/hicolor
这样一来,系统会优先使用你用户目录里的自定义图标,就算Chrome更新覆盖了系统目录的图标,也完全不影响你的设置。
方法二:修改用户级.desktop文件
如果你之前尝试过改.desktop文件但被覆盖,那是因为你改的是系统级的/usr/share/applications/google-chrome.desktop,我们需要把这个文件复制到用户目录下再修改:
复制系统的.desktop文件到用户专属的应用目录:
cp /usr/share/applications/google-chrome.desktop ~/.local/share/applications/用文本编辑器打开这个副本(比如用nano):
nano ~/.local/share/applications/google-chrome.desktop找到所有以
Icon=开头的行,把后面的路径改成你自定义图标的绝对路径,比如:Icon=/home/你的用户名/Pictures/custom-icons/google-chrome.png注意要替换成你实际的图标路径,保存退出(nano里按Ctrl+O,回车,再Ctrl+X)。
系统会优先加载用户目录下的.desktop文件,所以就算更新时系统的.desktop被覆盖,你的副本依然生效。
方法三:创建自定义图标主题(适合长期美化)
如果你想给多个应用换自定义图标,或者想打造一套自己的主题,这个方法更合适:
在用户图标目录下创建一个新的主题文件夹,比如
my-custom-theme:mkdir -p ~/.local/share/icons/my-custom-theme/apps在这个主题文件夹里创建
index.theme文件,写入以下内容(可以根据自己的需求修改):[Icon Theme] Name=My Custom Theme Comment=My own icon theme Inherits=Adwaita # 这里填你当前使用的系统图标主题,比如Papirus、Adwaita等 Directories=apps/把你的自定义图标放到
my-custom-theme/apps目录下,文件名要和系统里的一致(比如Chrome的就是google-chrome.png)。打开系统的“外观”设置,把图标主题切换成你新建的
My Custom Theme。
这个方法的好处是,所有应用都会优先使用你自定义主题里的图标,而且完全和系统级目录隔离,更新不会影响。
备注:内容来源于stack exchange,提问作者Anthony Barcio

