Skip to content
This repository has been archived by the owner on Mar 14, 2023. It is now read-only.
/ Insomnia Public archive
forked from Frizlab/Insomnia

An OS X kernel extension to prevent MacBooks from going to sleep when the lid is closed.

License

Notifications You must be signed in to change notification settings

demosdemon/Insomnia

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Insomnia

What is it?

Insomnia is a Mac OS X Kernel extension that prevents the system to go to sleep when the lid is closed on Mac Books.

Usage

cd /path/to/repo/
xcodebuild -target Insomnia -configuration Release
sudo cp -R build/Release/Insomnia.kext /System/Library/Extensions/
sudo touch /System/Library/Extensions

kextstat | grep co.pabu.kext.insomnia
#   137    0 0xffffff7f8213e000 0x2000     0x2000     co.pabu.kext.insomnia (1.1.1d1) <4 3 1>
# If a line like above is printed out, you are done. Otherwise continue
sudo kextload /System/Library/Extensions/Insomnia.kext

Build the kernel extension with Xcode. In OS X 10.8, and even more so in 10.9, all kernel extensions must be code signed by a certificate the system trusts. Refer to the Apple Documents on how to generate a self-signed certificate if you are not a registered Apple Developer.

By default, this version of the KEXT will disable sleep on clamshell close only when connected to AC. When on battery, it will allow the system to sleep. You can use /usr/sbin/sysctl to control some of the settings. The kext is built to where you do not need to be root to change these settings.

Use /etc/sysctl.conf to have these values persist across reboots. ref

To change this:

/usr/sbin/sysctl kern.insomnia.lidsleep
# => kern.insomnia.lidsleep: -1 1
# -1 is default, it means honor power state setings.

/usr/sbin/sysctl -w kern.insomnia.lidsleep=0
# 0 overrides power state settings and allows the system to sleep when the lid is closed
# 1 overrides power state settings and does not allow the system to sleep when the lid is closed

/usr/sbin/sysctl -w kern.insomnia.ac_state=1
# 0 allows the system to sleep when the lid is closed while connected to AC
# 1 does not allow the system to sleep when the lid is closed while connected to AC

/usr/sbin/sysctl -w kern.insomnia.battery_state=0
# 0 allows the system to sleep when the lid is closed while on battery
# 1 does not allow the system to sleep when the lid is closed while on battery

/usr/sbin/sysctl -w kern.insomnia.debug=1
# 0 less verbose Console.app output
# 1 more verbose Console.app output

TODO:

  • Actually implement settings
  • Allow sleep on temperature threshold
  • Allow sleep on battery threshold
  • Add settings for idle sleep
  • Insomnia.prefPane

Credits & License

This project is a fork of an original code by Michael Roßberg. As the downloads links provided on the official home page did not work, I cloned the project from sourceforge.

The project is release under the GPL license.

About

An OS X kernel extension to prevent MacBooks from going to sleep when the lid is closed.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 100.0%