How Does Wimoweh work?

Wimoweh uses IOPM to create assertions on behalf of other applications. Instead of an application telling OS X that its busy and not to sleep Wimoweh makes the request on the applications behalf and keeps a track of them.

What’s an assertion?

It’s Apple terminology for a request or more accurately a hint to OS X that a particular process is busy doing some useful work and, if possible, the computer should not enter a sleep state.

But other applications do it? Can Wimoweh do it too?

OK, so it’s technically possible but you probably don’t want Wimoweh to do it for two reasons. i. The methods to do this are quite sophisticated and are not really recommended by Apple. They tend to operate in-kernel (Wimoweh is user space) and the complexity involved in the implementation make these kinds of applications difficult to support as well as difficult to develop. You’d want somebody with a good understanding of the OS X kernel and the time to keep the app up to date with new point releases of OS X and that, unfortunately, is not me. ii. There’s a reason that Apple don’t expose that kind of functionally to developers without making them jump through hoops. They presumably don’t want to deal with warranty claims when your $2000 Macbook Pro melts itself into plastic slag because you kept the cores at 100% overnight. I certainly wouldn’t want to deal with the feedback. Also I don’t own a portable Mac but I’m sure if someone was to send me one I’d change my position. Alternatively plug an HDMI cable into your Mac (doesn’t need to be connected to anything else) and that should prevent it from sleeping with the lid closed

Shouldn’t applications / OS X being handling sleep already?

Yes they absolutely should. I first wrote Wimoweh to scratch an itch – I was fed up of coming back to find that my machine had gone to sleep when it should have been ripping a disc or encoding a file. As newer versions of OS X have made power management at the application level easier the problem should lessen. Handbrake for example now creates assertions when it’s working. If you’re using Wimoweh to stop the system sleeping to handle one specific app it might be worth asking the developer to check out IOPMAssertionCreateWithDescription in Apple’s developer documentation. In just a few lines of code they can have their application inform OS X when the application is busy and then you, in the best possible way, will no longer need to use Wimoweh. That being said Wimoweh makes it easy to do this kind of power management in one place and is particularly useful for command line, Java or Web applications that do not have visibility of OS X’s power management interfaces. Wimoweh also handles schedules, timers, can stay awake when your machine has been busy for a particularly amount of time or based on network activities none of which are available by default.

Why don’t the icon colours or the lists of processes always change immediately?

Because Wimoweh is lazy and in this case laziness is a good thing. Wimoweh uses a timer to update it’s various lists and icons but it leaves the exact timing up to the system. More recent versions of OS X use a technique known as timer coalescing to bunch up timers in an attempt to save energy; this means that sometimes there are apparent delays in updates. Wimoweh should always update within a few seconds.

Why are stable versions only available on the Mac App Store (MAS)?

i) Bandwidth costs me real money. The total donations to the site in the whole of 2013 covered 2 weeks of hosting costs. Now I’m clearly not in this for the money but having Apple servers do the heavy lifting is a big saving both financially and technically. ii) For better or for worse the App Store is a great Shop Window: The number of people who download my apps from the App Store exceed all of the other sources combined by a factor of twenty. iii) Support: There are technical differences between even apps which are identical in functionality when they’re packaged for the App Store. Around half the support requests I deal with have arisen as a direct result of these differences. Having just one download source reduces those problems.

Why is it called Wimoweh?

‘The Lion Sleeps Tonight’?

But what about Mavericks and Yosemite?

Whilst the app is 100% compatible the pun is no longer compatible. It is however fully supported.