diff --git a/platform-specific/turnoff_darwin b/platform-specific/turnoff_darwin new file mode 100755 index 0000000..80f163e Binary files /dev/null and b/platform-specific/turnoff_darwin differ diff --git a/platform-specific/turnoff_darwin.c b/platform-specific/turnoff_darwin.c new file mode 100644 index 0000000..1c242a8 --- /dev/null +++ b/platform-specific/turnoff_darwin.c @@ -0,0 +1,15 @@ +#include +#include + +/* Returns 0 on success and 1 on failure. */ +int main(void) { + io_registry_entry_t reg = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/IOResources/IODisplayWrangler"); + if (reg) { + IORegistryEntrySetCFProperty(reg, CFSTR("IORequestIdle"), kCFBooleanTrue); + IOObjectRelease(reg); + } else { + return 1; + } + + return 0; +} diff --git a/turnoff.py b/turnoff.py index 2e1b0ce..df62c27 100644 --- a/turnoff.py +++ b/turnoff.py @@ -7,4 +7,7 @@ import win32gui import win32con SC_MONITORPOWER = 0xF170 - win32gui.SendMessage(win32con.HWND_BROADCAST, win32con.WM_SYSCOMMAND, SC_MONITORPOWER, 2) \ No newline at end of file + win32gui.SendMessage(win32con.HWND_BROADCAST, win32con.WM_SYSCOMMAND, SC_MONITORPOWER, 2) +elif sys.platform.startswith('darwin'): + import subprocess + subprocess.call('echo \'tell application "Finder" to sleep\' | osascript', shell=True)