-
-
Save fabiofl/5873100 to your computer and use it in GitHub Desktop.
sudo find /private/var/folders/ -name com.apple.dock.iconcache -exec rm {} \; |
FYI tested touch
method in Catalina. (only one bundle tested, but working ok)
(The app bundle that failed on Mojave for me, still fails on Catalina. No big shock there.)
(The app bundle that failed on Mojave for me, still fails on Catalina. No big shock there.)
Interesting...
However If you can automate away that step maybe you have a workable solution.
I'll try to investigate how Icon\r
encoded, but knowing macOS it's probably some arbitrary binary nonsense😁
So are you also seeing these Icon\r
files as zero bytes after dragging? Because that's not really signalling encoding is it?
It signals some undocumented black magic voodoo. That's why I'm basically 100% out on this method.
But good luck!
So are you also seeing these
Icon\r
files as zero bytes after dragging?
No, they have non-zero size for me. Does an icon for the app changes with the dragging method for you when the size of Icon\r
is zero?
It signals some undocumented black magic voodoo. That's why I'm basically 100% out on this method.
I mean it is all undocumented black magic, unfortunately. Why touching an app bundle refreshes cache for example? Why it works for one app, but not for the other? More importantly, how can we sure it won’t break in the next macOS release? At least with Icon\r
method there is some level of confidence it won’t change the behavior between macOS versions simply because it’s part of the filesystem and it’s required to be backwards compatible.
But I see your point of course.
So are you also seeing these
Icon\r
files as zero bytes after dragging?No, they have non-zero size for me. Does an icon for the app changes with the dragging method for you when the size of
Icon\r
is zero?
That's right, but I'm several hours away from the last live test. It's something I can check again in the morning.
"in reality..." Uhmmm.
Tbh in reality all we know is that Finder's internal logic has embedded the icon somewhere. The trouble is, where. We know it's not really in that file Icon\r
because the actual file system doesn't register the file size.
The worst problem here is that neither representation is "in reality". They're both views through different abstraction layers, but it's safe to say only that those icon data bytes went "somewhere". Unfortunately that doesn't give us a thing to stand on.
All completely undocumented. All completely unreliable.
If you can script it somehow and make it reliable, applause for you.
On High Sierra, deleting com.apple.dock.plist
worked for me. However, a couple of native apps stubbornly refused to work. The Notes and Screen Sharing apps still have the default app icon.
Update:
I fixed those apps by removing them from the dock and then re-adding them. It worked after that.
@jasonm23 thanks
sudo rm -rfv /Library/Caches/com.apple.iconservices.store; sudo find /private/var/folders/ \( -name com.apple.dock.iconcache -or -name com.apple.iconservices \) -exec rm -rfv {} \; ; sleep 3;sudo touch /Applications/* ; killall Dock; killall Finder
after that restart your mac.
wahlaaah.. all restore and back to normal
This worked really well! Thank you @zigang93.
sudo rm -rfv /Library/Caches/com.apple.iconservices.store; sudo find /private/var/folders/ \( -name com.apple.dock.iconcache -or -name com.apple.iconservices \) -exec rm -rfv {} \; ; sleep 3;sudo touch /Applications/* ; killall Dock; killall Finder
after that restart your mac.
wahlaaah.. all restore and back to normalThis worked really well! Thank you @zigang93.
Works!
Here for better readable and discovering the shell-snippet again:
sudo rm -rfv /Library/Caches/com.apple.iconservices.store; sudo find /private/var/folders/ \( -name com.apple.dock.iconcache -or -name com.apple.iconservices \) -exec rm -rfv {} \; ; sleep 3;sudo touch /Applications/* ; killall Dock; killall Finder
@jasonm23 @andreiborisov i'm interested in changing icons via cli, doing some more debugging, found these articles:
- https://superuser.com/questions/298785/icon-file-on-os-x-desktop
- https://apple.stackexchange.com/questions/6901/how-can-i-change-a-file-or-folder-icon-using-the-terminal
The first one clarifies the 0 bytes size of Icon\r
: the file is actually stored in the resource fork
and finally this tool looks promising (although i haven't tested it myself) https://github.com/mklement0/fileicon
EDIT: i tried the tool and it works for me on Monterrey, although i still need to rebuild the cache and restart dock:
rm /var/folders/*/*/*/com.apple.dock.iconcache
killall Dock
I better test to see if the touch method is still working in Catalina! but I hope you figure out why it's broken for you. Please do test more app bundles (if you haven't) because there do seem to be some challenging ones.