Waitsnake / AnimatedGif

A screensaver for Mac OSX / macOS that plays animated GIFs and APNGs
MIT License
213 stars 31 forks source link

No gif file found #71

Open DmitrijGo opened 1 year ago

DmitrijGo commented 1 year ago

I am currently utilizing the macOS Ventura operating system on a MacBook M2 Pro, and I have encountered a particular issue. Specifically, I can observe a GIF animation within the menu; however, upon initiating the process, an error message is displayed, indicating that "no GIF file has been located. Is this possible to solve?

CattorBaconus commented 1 year ago

Updated to Ventura recently, and tried this out. I encountered the same issue as you did, however I managed to find a fix:

Go to your default "Pictures" folder on Mac, and create a new folder (call it whatever you want). Put all your gifs there, and then you can select the specific directory or gif that you want FROM the Photos folder in MacOS. This rendered all my gifs correctly.

For some reason. it can't really detect if a gif is from another folder. Haven't tested out the full range for its detection though, just that it doesn't work if it's a personal folder that was created independently of what Mac stores as images and videos.

DmitrijGo commented 1 year ago

It works well! Thank you so much!

Waitsnake commented 5 months ago

Updated to Ventura recently, and tried this out. I encountered the same issue as you did, however I managed to find a fix:

Go to your default "Pictures" folder on Mac, and create a new folder (call it whatever you want). Put all your gifs there, and then you can select the specific directory or gif that you want FROM the Photos folder in MacOS. This rendered all my gifs correctly.

@CattorBaconus Good find!

I literally never saw this issue on my machine since I always put my animations into a subfolder of "Pictures" folder anyways. Now I experimented with it. E.g. subfolders of "Downloads" folder will be ignored by macOS and you see "No gif file found" because macOS sandboxes this folder and ScreenSaver has no access to it, but on the other hand a subfolder directly in your home directory is also working.

But I can do nothing to change this sandboxes behaviour since a ScreenSaver is only a plugin that lives in the ScreenSaverEngine of the operating system of macOS (a process called legacyScreenSaver) and ScreenSaver has to life with the sandboxes options of legacyScreenSaver that Apple has took in place.

And there is another part of this problem that makes it even more tricky. As long as ScreenSaver plugin is running as preview within System Preferences it has different sandbox options from Apple and is allowed to access folders below "Downloads" folder and only the real screen saver later has no access to it. So when you change the option in System Preferences and select the folder or a file under Downloads you see a valid preview, but when you run the real screen saver it will show you "No gif file found".

This sandboxes options of legacyScreenSaver can literally not be changed by anyone since it is part of the Integrity Protected System Image of macOS that is for all readonly.