-
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
Aerial at login in a managed environment #571
Comments
@dvtch I can't find much about what is precisely not allowed at login, but I can think of a couple reasons why it wouldn't work. The very first launch of Aerial needs :
So pre login, first launch would definitely fail. So off the top of my head, I would guess that's not possible as is. If you can find what specifically is allowed/not allowed, maybe we could find a workaround but it would make sense to me that we don't have filesystem access at login. Last comment there, people seem to say that Ken Burns won't load, which would corroborate the no filesystem thing. |
@dvtch I see no reason why Aerial would not have network access and filesystem access if triggered at login (with no user logged in). I think you should investigate to move all files (prefs, cache, etc.) from user profile ( Preferences would be global, no per user preferences. |
(I would add to this that installing for all users should do most of this for you already, but I'm really not convinced filesystem would be available to Aerial, for security reasons. Might be totally wrong on that ! If you give it a shot, enable logging and post log if you have an issue) |
Because images and files are located in
those storing prefs and/or files in user library
because they need files located in user library or user folders. |
Make sense ! Thanks @LvanProosdij for clarification. |
What do you mean by "installing for all users" ? By default macOS "install screen savers for all users". When you double click What do you mean by "should do most of this for you already" ? Locating prefs and caches is hard coded in developers code. Currently even if Aerial is located in |
Pretty sure that's no longer the default, here it defaults to current user only when installing a screensaver on Mojave. You can override at install though.
Cache can be overridden manually. But that's what I meant by "most", yes. I didn't write the Preferences code so I'm not sure if it tries to use global preferences. If not it will fail but that's fixable. |
Solution would be to locate prefs and caches according to Aerial.saver location, user library or main library. |
According to code, Aerial uses ScreenSaverDefaults which wraps userDefaults Using global preferences requires usage of the low level CFPreferences There may be some permission issue (or not, hard to tell) since we are running as a plugin to either ScreenSaverEngine or SystemPreferences (which is why Apple provides the ScreenSaverDefaults wrapper). Probably not a trivial change but if you want to explore this we definitely welcome PRs. |
I haven't coded since GS OS and MacOS 9 ;-) |
Further reading, I just don't think it is possible and that is through more of Apple's sandboxing than a shortcoming of Aerial. There are too many variables since pre-configured preferences are part of this deployment to ensure cache location and such are set automatically on each client. That side of it, the deployment-side, took some tweaking with munki/outset scripting but I got it deploying the settings per client quite nicely. Aerial would load during a desktop session and applied all the settings I required. It's just that this isn't the kind of screen saver which can load at the login window, is all. |
I did some testing, macOS (Mojave) simply do not even try to execute any third party screensaver while at login screen. Even if locating the third party screensaver in |
Even without SIP ? Wow ! Well, thanks a lot for checking this @LvanProosdij ! |
Yeah, thanks for the testing @LvanProosdij - that would have been tedious. |
Indeed ! I'll put a line about it on the readme for future reference. |
I'm looking to deploy this to a lab of AD bound Macs. My settings are such that while a user is logged in, there isn't really a point of a screensaver because for security reasons, users are auto-logged out after 10 minutes of inactivity anyway. Where I want to utilise Aerial is at the login Window where there is more likelihood of screen burn. My MDM service has options to pick which screen saver to use at the login window but when I point it to /Library/Screen Savers/Aerial.saver - nothing actually loads. I have read that not all screen savers necessarily work before login. That might simply be the case here?
Is Aerial likely to work in this scenario or should I just pass on the idea?
The text was updated successfully, but these errors were encountered: