Ubuntu 22.04 LTS下使用gio设置metadata::custom-icon属性报错的解决求助
Ubuntu 22.04 LTS下使用gio设置metadata::custom-icon属性报错的解决求助
大家好,我在Ubuntu 22.04 LTS上碰到了一个关于通过gio命令设置文件自定义图标的问题,试了各种办法都没搞定,想求助下社区的大佬们!
问题背景
我可以在Nautilus文件管理器里手动给可执行文件指定图标:右键点击文件 → 选择「属性」 → 点击默认图标 → 选择新的图标文件。操作完成后,执行gio info <filename>,能看到输出里有metadata::custom-icon: file:///my-icon.png,这说明手动设置是完全正常的。
命令行尝试及报错
但是当我试图用gio命令行来设置这个属性时,却一直报错。我用的命令是:
gio set -t 'string' "${FILE_PATH}" metadata::custom-icon "file://${ICON_PATH}"
得到的错误提示是:
gio: Setting attribute metadata::custom-icon not supported
排查情况
我特意用gio info -w <filename>查看了文件的可写属性命名空间,输出显示:
Writable attribute namespaces: metadata (string, Copy with file, Keep with file when moved)
这说明metadata命名空间是支持写入字符串类型属性的,但不仅是metadata::custom-icon,像metadata::trust这类其他metadata属性也没法通过gio命令设置成功。
需求场景
我本来是想把这个设置图标的逻辑放到deb包的postinst脚本里,实现安装后自动给可执行文件配置自定义图标,现在卡在这一步了。我知道这个问题之前有人问过,但翻了一圈没找到可行的解决方案,所以来这里求助大家!
备注:内容来源于stack exchange,提问作者mdolphin




