Ich möchte meinen Bildschirm über die Befehlszeile ausschalten können.
Ich weiß , es ist die Tastenkombination ctrl+ ⇧+ , ⏏aber ich will es von einem Shell - Skript tun , oder aus der Ferne.
Gibt es einen Weg?
Ich möchte meinen Bildschirm über die Befehlszeile ausschalten können.
Ich weiß , es ist die Tastenkombination ctrl+ ⇧+ , ⏏aber ich will es von einem Shell - Skript tun , oder aus der Ferne.
Gibt es einen Weg?
Antworten:
In OS X 10.9 können Sie dies einfach tun pmset displaysleepnow
. Dadurch wird Ihr Bildschirm sofort ausgeschaltet, ohne dass Änderungen an Ihren Einstellungen vorgenommen oder der gesamte Host in den Energiesparmodus versetzt werden muss.
Eskalierte Berechtigungen sind anscheinend nicht erforderlich (zumindest in neueren Versionen von OS X). Wenn Sie jedoch eine Meldung über unzureichende Berechtigungen erhalten, können Sie dies tun sudo pmset displaysleepnow
.
Aufgrund des Feedbacks von Kommentatoren ist dies in OS X 10.8 oder früher nicht verfügbar.
Obwohl ich keinen Befehl gefunden habe, der das Display nativ ausschaltet, gibt es eine App, die Sie herunterladen können. Hier gibt es zwei Möglichkeiten.
Installieren Sie die App im Ordner Applications und starten Sie sie über Terminal oder SSH open /Applications/Sleep\ Display.app
Klicken Sie mit der rechten Maustaste auf die App im Ordner "Downloads" und klicken Sie auf "Paketinhalt anzeigen". Navigieren Sie zur Contents/MacOS
Sleepdisplay-Datei und kopieren Sie sie.
Navigieren Sie zu /usr/bin
(Sie können die Tastenkombination ⇧+ ⌘+ verwenden Gund das Verzeichnis eingeben) und fügen Sie die Binärdatei ein. Sie können den Befehl jetzt sleepdisplay
in Terminal oder über SSH eingeben und das Display wird sofort in den Ruhezustand versetzt.
Hoffe das hilft!
Hier ist ein einfaches Shell-Skript, das dies erledigt.
#!/usr/bin/env bash
open /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app
Dadurch werden alle Einstellungen ausgeführt / gestartet, die Sie für den Bildschirmschoner auf diesem Computer aktiviert haben.
Das folgende Skript erledigt die Aufgabe (in Leopard und höher), muss jedoch ausgeführt werden mit sudo
:
Die Voraussetzung ist, dass pmset
eine Zeit bis zum Ruhezustand der Anzeige eingestellt werden kann. Das Problem ist jedoch, dass der Wert 0 die Funktion deaktiviert, anstatt die Verzögerung auf Null zu setzen, und der Wert 1 eine volle Verzögerung von einer Minute ist. Die Magie dabei ist, dass ein Wert von 2 ^ 31 als negative Null gespeichert zu sein scheint, was magisch funktioniert als "Display sofort ausschalten".
In Tiger und früheren Versionen war eine andere magische Zahl erforderlich, da intern eine andere Variable mit Bitgröße verwendet wurde, um die Verzögerung in Minuten zu speichern, bis sich das Display ausschaltet.
Dies imitiert das Verhalten von control- shift- ejectund kann auf MacBook Airs ohne ejectSchlüssel verwendet werden.
#!/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
auf macOS Sierra
pmset displaysleepnow
caffeinate -u -t 1
pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29
Ergebnisse <4 sind eine SchlafanzeigeEin kleiner Knoten-HTTP-Server zum Festlegen des Bildschirmstatus Ihres Mac per Fernzugriff: https://github.com/ycardon/switch-api
"echo $[$(pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29) - 4]"
indem Sie dies tun (mit true / false "ist der Bildschirm eingeschaltet?").
Führen Sie den folgenden Befehl aus, um ein kurzes AppleScript auszuführen, mit dem die Anzeige in den Energiesparmodus versetzt wird:
osascript -e 'tell application "System Events" to sleep'
Der Befehl Name schon vermuten lässt , dass es könnte das gesamte System in den Schlaf unter Umständen setzen, aber ich konnte nicht erkennen , dass in begrenzten Tests geschehen: Ich habe es mit einem Shell - Skript getestet Ich begann kurz vor der Ausführung dieses Befehls, und die für ein paar lief Minuten, bis ich das System "aufgeweckt" habe. Die Ausgabe wurde während der gesamten Zeit fortgesetzt.
Hoffe wirklich, dass diese Antwort nicht zu weit vom Schuss ist. Meine Lieblingsmethode zum Einschlafen, Neustarten, Herunterfahren - und vor allem zum Sperren - eines Macs ist die Verwendung von Alfred (dem App-Launcher).
Es erfordert keine Skripte, Kenntnisse der Skripte oder die Verwendung von Terminal, was brillant ist.
Wenn Sie jedoch speziell Terminal verwenden möchten, ist dies wahrscheinlich nicht die Lösung für Sie.
Schauen Sie sich das Open Source Github-Projekt maclock an
Standardmäßig wird nur der Bildschirmschoner gestartet, aber Sie können das Display in den Ruhezustand versetzen mit:
maclock --display
Im Hintergrund handelt es sich um ein Bash-Skript, das im Wesentlichen nur Folgendes aufruft:
pmset displaysleepnow
Nun, dies ist eine alte, aber es scheint, dass es nirgendwo wirklich gute Antworten auf diese Frage gibt.
Ich habe ein AppleScript zum Laufen gebracht, obwohl es eine nicht verwaltete und nicht registrierbare App von Drittanbietern erfordert - Extra Suites. Es kann von der alten Website des Entwicklers heruntergeladen werden .
# 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
Ich habe es auch in einen Alfred Workflow integriert .
Bitte schön -
sudo su
pmset displaysleepnow
Die Verwendung von Alfred (kostenlos im AppStore) ist eine großartige Möglichkeit, das Display in den Ruhezustand zu versetzen, indem Sie einfach "sleep" schreiben. Einfacher geht es nicht.
Natürlich macht Alfred viel mehr als das. Sie können auch neu starten, sich abmelden, den Papierkorb leeren, sperren, herunterfahren und vieles mehr.
Benötigen Sie keine zusätzliche App, verwenden Sie einfach tell application "Finder" to sleep
Die App Launchbar funktioniert genauso gut wie Alfred. In meinem Fall CMD Leertaste dann S [Sleep] - einfach und schnell