J'aimerais pouvoir éteindre mon écran en ligne de commande.
Je sais qu'il ya le raccourci clavier ctrl+ ⇧+ ⏏mais je veux le faire à partir d' un script shell ou à distance.
Y a-t-il un moyen?
J'aimerais pouvoir éteindre mon écran en ligne de commande.
Je sais qu'il ya le raccourci clavier ctrl+ ⇧+ ⏏mais je veux le faire à partir d' un script shell ou à distance.
Y a-t-il un moyen?
Réponses:
Sous OS X 10.9, vous pouvez simplement faire pmset displaysleepnow
. Cela éteindra immédiatement votre écran sans modifier aucun de vos paramètres et sans mettre tout l'hôte en veille.
Les privilèges étendus ne semblent pas être nécessaires (du moins avec les versions récentes d'OS X), mais si vous recevez un message sur les privilèges inadéquats, vous pouvez le faire sudo pmset displaysleepnow
.
D'après les commentaires des commentateurs, cette option n'est pas disponible sous OS X 10.8 ou une version antérieure.
Bien que je n’aie pas été en mesure de trouver une commande qui mette en veille l’affichage de manière native, il existe une application que vous téléchargez qui le fera. Il y a deux options à partir d'ici.
Installez l'application dans le dossier Applications et à partir de l'exécution du terminal ou de SSH open /Applications/Sleep\ Display.app
Cliquez avec le bouton droit sur l'application dans le dossier Téléchargements, puis cliquez sur "Afficher le contenu du paquet". Naviguez jusqu'au Contents/MacOS
fichier sleepdisplay et copiez-le.
Accédez à /usr/bin
(vous pouvez utiliser le raccourci ⇧+ ⌘+ Get tapez le répertoire) et collez le fichier binaire. Vous pourrez maintenant taper la commande sleepdisplay
dans Terminal ou via SSH et l’affichage se mettra immédiatement en veille.
J'espère que cela t'aides!
Voici un script shell simple qui le fera.
#!/usr/bin/env bash
open /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app
Ceci exécutera / démarrera les paramètres que vous avez activés pour l’économiseur d’écran sur cet ordinateur.
Le script suivant fera le travail (dans Leopard et versions ultérieures), mais il doit être exécuté avec sudo
:
Le principe est que vous pmset
pouvez définir un délai avant la mise en veille de l'affichage, mais le problème est qu'une valeur de 0 désactive la fonctionnalité, plutôt que de définir le délai à zéro, et une valeur de 1 correspond à un délai d'une minute. La magie ici est qu’une valeur de 2 ^ 31 semble être stockée comme un zéro négatif, ce qui fonctionne comme par magie en "éteignant l’affichage immédiatement".
Dans Tiger et les versions antérieures, un nombre magique différent était nécessaire, car une variable de taille binaire différente était utilisée en interne pour stocker le délai, en minutes, jusqu'à ce que l'affichage s'éteigne.
Cela imite le comportement de control- shift- ejectet peut être utilisé sur un MacBook Air sans ejectclé.
#!/bin/bash
original_setting=`/usr/bin/pmset -g | /usr/bin/awk '/displaysleep/ {print $2}'`
magic_number=2147483648
/usr/bin/pmset -a displaysleep $magic_number; sleep 1; /usr/bin/pmset -a displaysleep $original_setting
sur macOS Sierra
pmset displaysleepnow
caffeinate -u -t 1
pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29
résultats <4 sont en veilleun serveur HTTP à petit nœud pour définir l’état de l’écran de votre Mac à distance: https://github.com/ycardon/switch-api
"echo $[$(pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29) - 4]"
(en utilisant ceci pour true / false "is screen on?").
Exécutez la commande suivante pour exécuter un AppleScript court qui met l'affichage en veille:
osascript -e 'tell application "System Events" to sleep'
Le nom de la commande suggère qu'il peut mettre le système entier en veille dans certaines circonstances, mais je ne pouvais pas le faire en effectuant des tests limités. minutes jusqu'à ce que je "réveille" le système. Il avait continué à imprimer le résultat pendant tout le temps.
J'espère vraiment que cette réponse n'est pas trop en dehors des sentiers battus. Ma façon préférée de dormir, de redémarrer, d’arrêter - et surtout de verrouiller - un Mac utilise Alfred (le lanceur d’application).
Il ne nécessite aucun script, connaissance des scripts ou utilisation de terminal, ce qui est génial.
Cependant, si vous VOULEZ utiliser un terminal, ce n'est probablement pas la solution pour vous.
Jetez un coup d'oeil au maclock du projet open source github
Par défaut, il lance simplement l'économiseur d'écran, mais vous pouvez mettre l'affichage en veille avec:
maclock --display
Sous les couvertures, il s’agit d’un script bash qui consiste essentiellement à appeler:
pmset displaysleepnow
C'est un vieux problème, mais il semble qu'il n'y ait pas vraiment de bonnes réponses à cette question.
J'ai un AppleScript au travail, bien qu'il nécessite une application tierce, non maintenue et non enregistrable, Extra Suites. Il peut être téléchargé sur l' ancien site Web du développeur .
# 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
Je l'ai également incorporé à un flux de travail Alfred .
Voici -
sudo su
pmset displaysleepnow
Utiliser Alfred (gratuit sur l'AppStore) est un excellent moyen de mettre l'affichage en veille en écrivant simplement: "sommeil". Ne devient pas plus simple que ça.
Bien sûr, Alfred fait beaucoup plus que cela, vous pouvez également redémarrer, vous déconnecter, vider la corbeille, verrouiller, arrêter et bien d'autres choses encore.
Pas besoin d'app supplémentaire, il suffit d'utiliser tell application "Finder" to sleep
L'application Launchbar fonctionne aussi bien que Alfred. Dans mon cas, la barre d'espace CMD puis S [Sleep] - simple et rapide