MacOS – OS X 10.10 (Yosemite) Custom Shutdown Screen/Behavior

customizationmacbook promacosshutdown

I'm a network admin at a school, and I'm wondering if anyone here can shed some light on an odd problem.

Preface: We have a number of laptop carts of MacBook Pros and MacBooks as well as over 100 faculty MacBook Pros. We have spent a lot of time teaching students and faculty members that when they wish to turn off a laptop, they must click the Apple, then Shut Down and then WAIT UNTIL THE SCREEN TURNS BLACK. As indicated by the all caps, this has been a major problem in the past because students and faculty alike will click Shut Down, then immediately close the lid, thus suspending the machine in a state between log out and shut down. After many years of data corruption, constant reminders and re-education, the problem is finally at an all-time low. However, all of that is now in jeopardy due to a change in Yosemite.

The Problem: We are switching to OS 10.10 next year, and Apple has changed the shutdown screen from pure white to pure black, meaning the average user has practically no way to know when the machine is actually turned off. There is a small spinning progress circle in the bottom middle of the screen, but it is dull and almost imperceptible unless the brightness is way up and the environment is dark. This means that users will click Shut Down and then immediately close the lid once they see the black screen.

The Desired Result: In a perfect world, I would be able to set a custom shutdown screen that has text on it and is, you know, not not identical to a powered off screen. Alternatively, I could at least put large text on top of the black screen. I have not found any way to modify the shutdown screen for 10.10 or any other OS. Does anyone know any way to accomplish this?

Another Desired Result: It would be nice if I could replace the default spinning progress circle with something else that is bigger, brighter and actually visible. The only issue I see here is that the graphic is so small that regardless of what I created to go in its place, it would be ignored. If the graphic could be made larger, that would be a serious possibility. However, as with the above choice, I have not seen any evidence that it is possible. Does anyone know anything about this?

The Work-Arounds I've Pondered and/or Tried:
1) Changing the shutdown timer to 1 or 2 seconds.
— I would like to avoid this if possible because of the issues that could occur if processes are constantly killed before gracefully ending. I realize this is not a constant issue, but it would happen.

2) Turning on the keyboard backlight.
— This would technically work, because the keyboard backlight stays on until the machine is fully shut down. However, it is not practical. It drains the battery, not everyone wants it on, and there is no way to force it to stay on.

3) Informing users to pay attention to physical things, such as HD vibration, fan airflow, noise etc.
— This is completely impractical, totally unreliable and would never work for the faculty, much less the students.

4) Somehow configure the system beep to make noises until the power is turned off.
— I don't think it is possible to control the system beep that way, and besides, if there are more than two students in the same room there would be beeps all over the place and no way to know whose machine they came from. Also it would annoy everyone.

5) Run a logout hook script that displays something on the screen that goes away only when the power turns off.
— I'm not entirely sure this is technically possible, because as the OS is shutting down, the processes that would need to be kept alive to run the message would either prevent shutdown altogether, or simply get killed as part of the shutdown process.

6) Use a program like NoSleep or InsominaX to disable the lid closing behavior.
— When used in conjunction with completely disabling the ability to sleep and hibernate the computer, technically this functionality would work nicely for the laptop carts. However, it is not an ideal solution. The main issue is getting the programs to run reliably every time, which has not been my experience using them over the years. Secondly though, the program's menu bar icon would be visible and accessible to students; and they cannot be allowed to manipulate such settings.
— Furthermore, teachers need to be able to put their computer to sleep, and these programs make that an unreliable process. In my testing, if you put a computer to sleep by clicking Apple –> Sleep, closing the lid actually wakes the machine up. I've put a ticket in with each developer, but a response is unlikely I think.

7) Add a command to a logout hook which turns the screen brightness up to 100%, create a LaunchAgent then returns it to 50% (or some other number) at boot up.

— In theory, with some luck and a lot of re-education it could work for the faculty laptops, but it is highly unlikely the students would have the presence of mind to pay attention to the degrees of blackness necessary to make a power on vs. power off judgement.

As you can see, I have put a lot of thought into this and done a lot of research, but so far I am still without a solid solution. I have found almost no references online to anyone making custom shutdown messages, or altering shutdown behaviors in the way that I am describing. What I have seen mostly involves changing the shutdown timer, commands for a dirty or forced shutdown, creating AppleScript to display messages to be clicked before shutdown begins, and so on.

So, does anyone have any ideas how I might proceed here?

Best Answer

To solve data corruption, have users log out. Also, empower users to know if their backups are current and make it their responsibility to self-service restore activities.

To minimize restart times, have users restart the macs and sleep them when the login screen arrives (assuming you don't have auto-log in enabled). This makes much more sense to me since new classes should have everything prepped and the last class should clean up their mess.

All your workarounds seem like IT taking the cleanup burden from the users and also shouldering the data protection lead. When IT is seen as a second fail safe to be relied upon when the routine maintenance and operating throw an exception, your life will be much better. In turn, the staff and student's lives will be much better since you can then support the real problems and not be self-selecting and volunteering for all the janitorial work.

Also, having reboots be a monthly task is working well in most environments I'm aware of. If your software selection and testing is yielding leaky and crash-tastic performance, documenting that would be an excellent investment in the future so that the curriculum reflects the costs of maintenance since you are well aware of how real they can be when you don't have stable OS that can wipe things clean once a user logs out.

When IT can be responsible for system stability and users responsible for user maintenance (log out and log in) and you can track reboots as a signal that users are not trained or that a quality defect has slipped past the testing group, life gets far more fun for IT.

Lastly, look at your MDM provider - with 150 macs under management, you'll reap significant benefits if you learn how to use that tool proactively. If you don't have one, start a bushel trial immediately and reach out to one or more vendors to learn how you can leverage tools to assist. Even if you end up rolling out scripts to tweak hooks, you'll want a solid framework for monitoring and change management rather than laying hands on every cart and interrupting staff constantly for inevitable changes and updates.