-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Screen Savers broken on 2+ monitor system in macOS Sonoma 14.0 #1305
Comments
Can confirm all of the same FYI. |
Also, side note, while they added some "video wallpapers" based on Aerial, there's no screensaver. When you get out of the screensaver (whatever it is), the lock screen plays a video for 3 seconds and stays still. That's... not what they showed with fanfare during the presentation (seemless playback between screensaver and desktop background, which is definitely an impressive syncing effort). |
FYI, I've re-submitted this as FB12240576, referencing my prior feedbacks FB12023530 and FB12179420, and also fixed the TItle of this Issue (it said macOS 13.4, but should obviously be 14.0) |
I have also reported it to Apple via the Feedback Assistant. Even the stock included Aerial Video Wallpapers don't work, they just show up as still wallpaper images. Everyone should report it, as the more reports to Apple the more attention it will get. Use the Feedback Assistant that came with the Sonoma Beta. If you don't have it installed, here are instructions for it: https://support.apple.com/guide/feedback-assistant/intro-to-feedback-assistant-fba2e39e53f5/mac |
But to be clear, that's how Apple implemented them. They are not video wallpapers as in, they are not intended to playback all the time (like with Companion). They just play when you login basically, then slowdown to "become" a fixed wallpaper. That's how Apple implemented them. There's not (at least not yet) a screensaver with those dynamic wallpapers... it's weird right now. You can animate them for like 5 seconds by going to your Apple menu top left and pressing "lock screen" (2nd option from the bottom). Yet they clearly talk about screensavers here : https://www.apple.com/macos/sonoma-preview/
The log-in thing is here, as long as it's from boot up, or when you come back from display off (basically, a blank lock screen). If you somehow run any screen saver, the (traditional) lock screen will appear on top of the screensaver. So it's - at the moment - a "lock screen screen saver". I doubt this is their full plan. If it is, I mean... I have a hard time processing this, not gonna lie ! |
I'll point to this update here for reference : #1286 (comment) |
I am running 3 monitors and all 3 of mine are using screen savers. I have different ones on each screen. |
Do you mean different screensavers or different Aerial videos on each screen using Aerial ? Not sure I follow what you mean here. |
Sonoma beta 2 is out, and the Screen Saver System Settings has changed a lot.
Here's what the System Settings pane looks like now: |
And when running on a 2 monitor system, with 'Show on all displays' enabled, behavior is again erratic: sometimes it plays only on screen 1, sometimes only on screen 2 (but with screen 1's content), and on rare occasion it will play on 2 screens nor mally, but I've only seen that about 1 out of 10 times. |
Can confirm all this, including the new weird bugginess. Also note that if you go into desktop backgrounds (is it now called wallpaper in settings ??) you have the invert switch, use as screen saver : The important bit is, screensavers can now be run independently on each screen, and in theory you can run 2 different ones simultaneously on different screens (at least that's what they are going for). I think that the new ability to set a separate screensaver on different screen is likely the root cause of all our issues, they might have started implementing stuff around this a while back. Right now if I set Aerial to all screens in 2 monitor configuration, I get it on either one of them, primary or secondary. The bug previously never displayed on primary. If I set "individually" on both screens, I get the same thing. It's insanely buggy in any case. Regarding their implementation of aerial screensavers, I think they simply use the desktop window and animate/stop it. they don't create a new separate view. This is what they did previously with the lock screen thing, they just animate the desktop and stop it. It's unlikely we'll get the ability to make "dynamic wallpaper/screen savers" soon as 3rd party, which obviously sucks. |
Hey is it just me or has this thing not worked even close to right for more than a year now ? |
@DSBlackHeart I first reported the bug february 23rd, this was 13.3 beta where they broke it. Back on topic, if I set a dynamic background (but not as screensaver), and launch screensaver (in that case aerial), when I come back to the desktop, I get the slowed down animation and... Did they really implement this in LEGACYSCREENSAVER 😵💫 I can see how that would break legacyScreenSaver for "regular" uses. And that CPU usage for a still frame, seriously (and I have to force quit them if I switch back to regular wallpaper) ! |
More like 4 months - it's only been since 13.3 betas which started happening in March. Feels like a year though!
Maybe? they don't really have a good UI for that, as it's only "Run on main screen" which if off, lets you choose 1 monitor to run on. I can't see any way to intentionally choose N arbitrary screensavers for N monitors, can you?
good theory |
Yeah, I'm seeing that too. That's a real WTF. |
It's very clunky but it works just like on the desktop backgrounds side, whatever you set is persisted, if I setup Aerial on one and switch to the other screen, set monterey there, if I pick the first screen back it shows Aerial. And in that case I can confirm it runs both (and in that case, weirdly enough, fine). |
I feel like with Sonoma beta 1, some people were talking about the new screensavers. But most of us were not seeing any new screensavers, only wallpaper. This was very confusing to me, and I was wondering if they were confused. Now in beta 2 I'm seeing actual screensavers. Could it be possible that poeple were seeing the screensavers in beta 1, but it was only showing up for some people? (a certain region, model of mac, GPU, CPU or something else?) |
I'm 100% sure people just got confused with the lock screen and Craig saying screensavers ;) In beta 1, if you set the desktop background, you got the animation at login, back from sleep, or pressing lock screen in your Mac menu bar top left. I doubt they A/B tested anything, just people not understanding the difference or reusing Apple's marketing. 9to5mac was infuriating about this for example. |
OK, I see what you are saying, and it kinda works. Unfortunately, this means third-party screensaver authors now have to test for the difference between
as well as other possible issues such as
Yikes! |
Yeah, I think it may not change much, we already had different situations in macOS where your plugin was launched by one process and ran on 2 windows, or launched by 2 separate processes. I know I have code about that laying around in Aerial, I can never remember what the current situation is. The tiny preview in System Preferences was also sometimes sharing the same process (I think they no longer do that, if I had to guess, but not sure).
Usually this goes very wrong, it's worth trying putting one version in /Library and one in ~/ and set them both, see what happens. System Preferences for example couldn't handle this if you put 2 versions, itonly loaded the UI bundle from one, which lead to hilariously hard crashes to debug if you opened the second. Now I just don't let people put Aerial in /Library for that reason ;) Adding a bit on the legacy thing, it's late and I'm a bit too tired to investigate but I'm starting to wonder if what they do is, run the unlock screen animation through legacyScreenSaver, and at the same time set the last frame of the animation as a "picture" desktop background proper, and hide (but not kill) the legacyScreenSaver process called Wallpaper. I'm saying this because force quitting it just results in nothing changing visually. Edit : Thankfully all those changes are brilliantly documented... https://developer.apple.com/documentation/screensaver 😩 |
So, with recent versions of iScreensaver, which are written in Swift, there's a nice multi-screen syncrhonization feature, so when transitioning to another asset (image, video, 3D GLTF file...) each screen would talk to the other one and try to wait until all were ready, so they can all run the next effect simultaneously. When it works it's pretty nice. Because legacyScreensaver did run all instances in the same process, this was fairly easy to do, by just using Swift globals. Or at least it seemed easy and worked on Intel, but when Apple Silicon came around, the memory model changed and having mutliple threads accessing globals no longer worked, as described here: https://developer.apple.com/documentation/apple-silicon/addressing-architectural-differences-in-your-macos-code In any case, it was solved by adding some protection around the memory access using the synchronized directive or similar, see https://stackoverflow.com/questions/24045895/what-is-the-swift-equivalent-to-objective-cs-synchronized With Sonoma, this doesn't seem to be working, so I need to go back and check this assumption that all screens are running in different threads but the same process. Maybe it's not true any more? |
You probably need to quit system settings and open it again for Aerial's Displays window to pick it up (when you launch the screensaver it's a separate process so it picks things up again). In any case, thanks for confirming! |
I had, still but it didn't pick it up - but it is now 🤷🏻 |
@uurf that's... wild and I think you are 100% correct. I don't know what to say... This seems to work both ways too : legacyScreenSaver : not fine 😩 |
Sometimes it just gets stuck in Sonoma. Closing System Settings (the whole window) will in general (sometimes given enough time) kill the settings host. For now I think that <50% will have to do because I don't see much workaround possibility for this (none of this would be an issue if Apple fixed the original bug we reported months ago, it's so sad). |
the ghost of steve jobs is saying "just avoid aligning them that way" |
Aligning on top of each other also doesn't work fyi. Apple asked the other day if the bug still occurred (...) Short term I'll try bringing back the previous workaround as a 3rd line of defence (matching on screen resolution, which only work if your screens have different resolutions obviously). This is exhausting. |
So the bug is still here in 14.3 RC. I just released 3.3.6 with that 3rd layer of workarounding, which seems to work fine if you only have 2 monitors (including same resolution), or 3+ with different resolutions. @uurf you might want to check but I think your old configuration should work again as expected. |
I can check on Monday. |
FWIW, I have the same problem on Sonoma with the Drift screensaver. Using just the normal Settings panel to enable it on "all screens" results in it only being on my Macbook screen and 1 of the 2 attached monitors. Both monitors are HDMI, but different resolutions. Curious if any of the workarounds being discussed here would help for core screensavers. |
Ha, that makes sense, off the top of my head, Drift is one of a (small) number of remaining screensavers from Apple that are using the same So yes, should Apple fix their bug, it would fix Drift too. Sadly, last time I reported a bug that also affected one of their screensaver... they didn't fix the bug, and rewrote their screensaver with the new API we don't have access to 🙈 |
I forgot to mention, with the Drift ss issue, when I'm at work docked to a different Thunderbolt3 dock, BOTH my external monitors work as expected - but both external monitors at work are the same resolution. At home, I have a different TB3 dock, but my 2 ext. monitors are different resolutions. |
As far as I know this is mostly a vertical alignment issue, check up the thread for some screenshots of alignments that work/fail and compare with your setup. Screens on top of each other will always fail for example, etc. |
Thanks for the tip. I played with my arrangements and DID get Drift working on all monitors! However, it's not how I want the monitors arranged. For the record, Drift only works on all 3 monitors (on internal + both attached) if the TOP of the external monitors are aligned/flush: |
This is interesting thanks. This is definitely annoying. I would very much suggest you try reporting the bug to Apple explaining that it affects Drift and other 3rd party screen savers, using Feedback Assistant on your mac, it would really help. Thanks ! |
I'm seeing the same issue, alignment doesn't seem to be the problem as it was working and then just stopped working out of the blue, really wish this was less buggy like it used to be. I guess we can blame Apple and Sonoma. |
OMG Thanks! |
I have a hard time believing it but... they seem to have fixed that bug in macOS 15.3 😱 I also tried some misalignments scenarios (the remaining part of the bug we didn't had a fix for), and it seem to work too. Confirmations welcomed for those who were affected! I need to check if one of the other major bugs was fixed or not, who knows. Fairly wild to see that fixed now! |
Still not working for me on 15.3. Drift Screensaver, "All Spaces," Laptop, 1920x1200, 2560x1440. The 2560x1440 screen is always blank. |
If possible, can you make a screenshot of your screens arrangement ? I tried some barely overlapping configurations that used to fail and they worked here, so I'd like to see what fails ! Thanks ! |
Can confirm that in my 2 display setup, now works as expected with overlaps from 0-100% |
Sure. It's the same exact arrangement I've always had. The 3 screens increase in resolution left to right, and are all bottom aligned: Drift only plays on left and middle screens. If i make the middle and right screen align top, Drift plays on all screens, but I cannot work with that arrangement. |
This is a follow-up thread to #1286
Initial testing with macOS Sonoma (first beta, 23a5257q) suggests the problem has worsened again:
Conclusion: the first beta of Sonoma 14.0 is broken, and seems to be as broken as early betas of Ventura 13.3.
The text was updated successfully, but these errors were encountered: