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?
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?
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.
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í.
Instale la aplicación en la carpeta Aplicaciones y desde la Terminal o SSH ejecute open /Applications/Sleep\ Display.app
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!
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.
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
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.
en macOS Sierra
pmset displaysleepnow
caffeinate -u -t 1
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
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.
Wake: caffeinate -u -t 2
Sueño: pmset displaysleepnow
Puedes usar el comando pmset
para cambiar el valor de displaysleep, algo como
pmset -a displaysleep 1
(requiere root)
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
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 .
Lo hice con sudo shutdown -s now
.
Tenga en cuenta que necesitará privilegios de administrador para hacer esto.
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.
No se necesita aplicación adicional, solo usa tell application "Finder" to sleep
La aplicación Launchbar funciona igual de bien que Alfred. En mi caso, la barra espaciadora CMD luego S [Sleep] - simple y rápido
Lea otras preguntas en las etiquetas terminal sleep-wake screen