睡眠命令显示OSX

mik*_*gto 5 macos

OS X上是否有命令/ API将监视器置于睡眠模式?

在睡眠模式下,我的意思是完全杀死显示器的输出.我知道在电源设置中可以配置这个,但这是基于时间的.

Tab*_*tha 17

这可以用半无证的api完成.

#include <CoreFoundation/CoreFoundation.h>
#include <IOKit/IOKitLib.h>

/* Returns 0 on success and 1 on failure. */
int display_sleep(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;
}
Run Code Online (Sandbox Code Playgroud)

海湾合作委员会旗帜: -framework CoreFoundation -framework IOKIT

IOKit文档

  • 你能在多显示器系统中定位一个显示器吗?这似乎睡了所有显示器. (2认同)

Cox*_*oxy 8

以编程方式,还是作为用户?

对于后者,Control + Shift + Eject.


小智 6

在OS X 10.9.5中测试,您可以使用以下命令将显示器置于睡眠状态:

$ pmset displaysleepnow
Run Code Online (Sandbox Code Playgroud)

警告:目前,在OS X 10.9.5中有一个错误(小烦恼,实际上)在睡眠显示中,我在LaunchBar中使用睡眠显示操作时发现了这个错误.通过调用此命令(动作或终端),最后一个按下的键始终是Return,因此当您唤醒显示器时,此键似乎会"卡住".你可能永远都不会注意到它但是如果使用某种双修饰键来调用LaunchBar或其他应用程序(在我的情况下Double Cmd),这个键组合将无法工作,直到你Return再次按下"释放"它,醒来后显示器.