Git here:
https://github.com/bigkm/SleepDisplay
https://github.com/bigkm/SleepDisplay
copied the code below from the file SleepDisplay.m found here:
https://github.com/bigkm/SleepDisplay/blob/master/SleepDisplay.m
https://github.com/bigkm/SleepDisplay/blob/master/SleepDisplay.m
forum discussion here:
last post
This is an updated version of the code I described in this post. it is updated to wake the screen also, with a -wake argument, since Lion doesn't seem to do that now with scripted keystrokes
First:
open Textedit, paste whats between the lines below into it:
===========
First:
open Textedit, paste whats between the lines below into it:
===========
// gcc -Wall SleepDisplay.c -o SleepDisplay -framework CoreFoundation -framework IOKit
// I just put that above line in to remind me what command to run in terminal
/**
* SleepDisplay
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#import <Foundation/Foundation.h>
#import <IOKit/IOKitLib.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSArray *params = [[NSProcessInfo processInfo] arguments];
BOOL shouldWake = NO;
for (NSString *arg in params)
{
if([arg isEqualToString:@"-wake"] || [arg isEqualToString:@"--wake"] || [arg isEqualToString:@"-w"])
{
shouldWake = YES;
}
if([arg isEqualToString:@"-help"] || [arg isEqualToString:@"--help"] || [arg isEqualToString:@"-h"])
{
printf("usage: SleepDisplay [-w]\n");
printf("Without options, sleeps the display (not system sleep)\n");
printf("use with the -w (--wake) option to wake\n");
// quit.
[pool drain];
return 0;
}
}
io_registry_entry_t entry = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/IOResources/IODisplayWrangler");
if(entry)
{
IORegistryEntrySetCFProperty(entry, CFSTR("IORequestIdle"), shouldWake ? kCFBooleanFalse : kCFBooleanTrue);
IOObjectRelease(entry);
}
[pool drain];
return 0;
}
===========
if you're using text edit make sure you go under format menu "Make Plain Text"
Save this file as "SleepDisplay.txt"
Second:
change the extention .txt to .c so now the file name is "SleepDisplay.c" to do this I ran in terminal:
mv SleepDisplay.txt SleepDisplay.c
Third:
Install gcc from here:
https://github.com/kennethreitz/osx-gcc-installer/
https://github.com/kennethreitz/osx-gcc-installer/
(because apple removed it or something form Lion, see:
http://superuser.com/questions/313107/does-updating-to-os-x-lion-delete-gcc)
http://superuser.com/questions/313107/does-updating-to-os-x-lion-delete-gcc)
Fourth:
run terminal in the same folder as the file and copy the next line into it & hit return:
gcc -Wall SleepDisplay.c -o SleepDisplay -framework CoreFoundation -framework IOKit
gcc -Wall SleepDisplay.c -o SleepDisplay -framework CoreFoundation -framework IOKit
if it doesn't work you might have to use "su" first and type in your admin password then run the command again.
--- still testing but moving on to the next post, this bores me now. seems to work tho...