¿Cómo puedo dormir la pantalla desde la Terminal?

41

Me gustaría poder apagar mi pantalla desde la línea de comandos.

Sé que existe el método abreviado de teclado ctrl + + pero quiero hacerlo desde un script de shell o de forma remota.

¿Hay alguna manera?

    
pregunta gregseth 06.01.2012 - 00:34

15 respuestas

62

En OS X 10.9, simplemente puedes hacer pmset displaysleepnow . Esto apagará de inmediato su pantalla sin cambiar ninguna de sus configuraciones o poner a dormir al host completo.

Los privilegios ampliados no parecen ser necesarios (al menos con versiones recientes de OS X), pero si recibe un mensaje sobre privilegios inadecuados, podría hacer sudo pmset displaysleepnow .

Según los comentarios de los comentaristas, esto no está disponible en OS X 10.8 o anterior.

    
respondido por el Sarah G 11.11.2013 - 04:51
22

Aunque no he podido encontrar un comando que duerma la pantalla de forma nativa, hay un aplicación que descargues que lo hará. Hay dos opciones desde aquí.

  1. Instale la aplicación en la carpeta Aplicaciones y desde la Terminal o SSH ejecute open /Applications/Sleep\ Display.app

  2. Haga clic con el botón derecho en la aplicación desde la carpeta de Descargas y haga clic en "Mostrar contenido del paquete". Desplácese a Contents/MacOS y copie el archivo sleepdisplay.

    Navegue a /usr/bin (puede usar el acceso directo + + G y escriba el directorio) y pegue el binario expediente. Ahora podrá escribir el comando sleepdisplay en la Terminal o mediante SSH y la pantalla se pondrá inmediatamente en suspensión.

Espero que esto ayude!

    
respondido por el Matt Love 12.01.2012 - 15:53
7

Aquí hay un script de shell simple que lo hará.

#!/usr/bin/env bash
open /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app

Esto ejecutará / iniciará cualquier configuración que hayas habilitado para el protector de pantalla en esa computadora.

    
respondido por el afragen 12.01.2012 - 23:34
6

La siguiente secuencia de comandos hará el trabajo (en Leopard y versiones posteriores), pero debe ejecutarse con sudo:

La premisa es que pmset puede establecer un tiempo hasta que se muestre el modo de espera, pero el problema es que un valor de 0 desactiva la función, en lugar de establecer el retraso en cero, y un valor de 1 es un retraso de un minuto. La magia aquí es que un valor de 2 ^ 31 parece estar almacenado como cero negativo, que mágicamente funciona como "apagar la pantalla inmediatamente". En Tiger y versiones anteriores, se necesitaba un número mágico diferente, porque una variable de tamaño de bit diferente se usaba internamente para almacenar la demora, en minutos, hasta que la pantalla se apaga.

Esto imita el comportamiento de control-shift-eject, y se puede usar en MacBook Airs sin una tecla de expulsión.

#!/bin/bash
original_setting='/usr/bin/pmset -g | /usr/bin/grep displaysleep | /usr/bin/awk '{print $2}''
magic_number=2147483648
/usr/bin/pmset -a displaysleep $magic_number; sleep 1; /usr/bin/pmset -a displaysleep $original_setting
    
respondido por el Daniel 14.01.2012 - 01:35
4

Ejecute el siguiente comando para ejecutar un AppleScript corto que ponga la pantalla en modo de suspensión:

osascript -e 'tell application "System Events" to sleep'

El nombre del comando sugiere que podría suspender todo el sistema en algunas circunstancias, pero no pude lograrlo en pruebas limitadas: lo probé con un script de shell que comencé poco antes de ejecutar este comando, y se ejecutó durante unos minutos hasta que "desperté" el sistema. Había continuado imprimiendo la salida durante todo el tiempo.

    
respondido por el Daniel Beck 06.01.2012 - 01:34
3

en macOS Sierra

  • pantalla de suspensión: pmset displaysleepnow
  • visualización de activación: caffeinate -u -t 1
  • estado de prueba: pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29 results < 4 son una pantalla inactiva

un pequeño servidor HTTP de nodo para configurar el estado de la pantalla de su Mac de forma remota: enlace

    
respondido por el Yann Cardon 24.05.2017 - 20:31
2

Realmente espero que esta respuesta no sea demasiado fuera de lo común. Mi forma favorita de dormir, reiniciar, apagar y, lo que es más importante, bloquear: una Mac está usando Alfred (el iniciador de aplicaciones).

No requiere ningún script, conocimiento de scripts o uso de terminal, lo cual es genial.

Sin embargo, si específicamente QUIERES usar un terminal, probablemente esta no sea la solución para ti.

    
respondido por el Mitch Rosen 16.01.2012 - 16:53
2

Wake: caffeinate -u -t 2

Sueño: pmset displaysleepnow

    
respondido por el Dermot 08.05.2016 - 09:32
1

Puedes usar el comando pmset para cambiar el valor de displaysleep, algo como

pmset -a displaysleep 1

(requiere root)

    
respondido por el da4 12.01.2012 - 17:24
1

Eche un vistazo al proyecto de código abierto github maclock

De forma predeterminada, solo inicia el protector de pantalla, pero puedes poner la pantalla en modo de suspensión con:

maclock --display

Debajo de las portadas, es un script de bash que básicamente está llamando:

pmset displaysleepnow
    
respondido por el rouble 06.05.2016 - 05:38
1

Bueno, esta es una vieja, pero parece que no hay respuestas realmente buenas para esta pregunta en ninguna parte.

Conseguí un AppleScript para trabajar, aunque requiere una aplicación de terceros, no mantenida e inscribible: Suites adicionales. Se puede descargar en el sitio web antiguo del desarrollador .

# Gets the current state of the upper left hot corner, then sets it to sleep display.
tell application "System Events"
  tell expose preferences
    set givenActivty to get the activity of the top left screen
    set the properties of the top left screen corner to {activity:sleep display}
  end tell
end tell

# Uses Mouse to Activate upper left hot corner. [Moving directly to {0, 0} does not work
tell application "Extra Suites" 
  ES move mouse {1, 1}
  ES move mouse {0, 0}
end tell

# Restores state of upper left hot corner.
tell application "System Events"
  tell expose preferences
    delay 1
    set the activity of the top left screen corner to givenActivty
  end tell
end tell

# Gets rid of Extra Suites nag window.
tell application "Extra Suites"
  quit
end tell

También lo he incorporado en un flujo de trabajo Alfred .

    
respondido por el Bruce 10.06.2013 - 07:00
1

Lo hice con sudo shutdown -s now .

Tenga en cuenta que necesitará privilegios de administrador para hacer esto.

    
respondido por el Tom Shen 08.05.2016 - 12:53
-1

Usar Alfred (gratis en la AppStore) es una excelente manera de poner la pantalla en modo de suspensión simplemente escribiendo: "dormir". No se vuelve más simple que eso.

Claro que Alfred hace mucho más que eso, también puedes reiniciar, cerrar sesión, vaciar papelera, bloquear, cerrar y muchas más cosas.

    
respondido por el Alejandro Escobell 16.01.2012 - 20:32
-2

No se necesita aplicación adicional, solo usa tell application "Finder" to sleep

    
respondido por el user81191 08.06.2014 - 21:22
-2

La aplicación Launchbar funciona igual de bien que Alfred. En mi caso, la barra espaciadora CMD luego S [Sleep] - simple y rápido

    
respondido por el Norm Beazer 25.11.2016 - 17:57

Lea otras preguntas en las etiquetas