Chciałbym móc wyłączyć ekran z linii poleceń.
Wiem, że jest skrót klawiaturowy ctrl+ ⇧+, ⏏ale chcę to zrobić ze skryptu powłoki lub zdalnie.
Czy istnieje sposób?
Chciałbym móc wyłączyć ekran z linii poleceń.
Wiem, że jest skrót klawiaturowy ctrl+ ⇧+, ⏏ale chcę to zrobić ze skryptu powłoki lub zdalnie.
Czy istnieje sposób?
Odpowiedzi:
W OS X 10.9 możesz to zrobić po prostu pmset displaysleepnow
. Spowoduje to natychmiastowe wyłączenie wyświetlacza bez zmiany jakichkolwiek ustawień lub uśpienia całego hosta.
Wydaje się, że eskalowane uprawnienia nie są wymagane (przynajmniej w przypadku najnowszych wersji OS X), ale jeśli pojawi się komunikat o nieodpowiednich uprawnieniach, możesz to zrobić sudo pmset displaysleepnow
.
Na podstawie opinii komentujących nie jest to dostępne w systemie OS X 10.8 lub wcześniejszym.
Chociaż nie udało mi się znaleźć polecenia, które uśpiłoby wyświetlacz natywnie, istnieje aplikacja , która to zrobi. Istnieją dwie opcje stąd.
Zainstaluj aplikację w folderze Aplikacje i z poziomu terminalu lub SSH open /Applications/Sleep\ Display.app
Kliknij prawym przyciskiem myszy aplikację z folderu Pobrane i kliknij „Pokaż zawartość opakowania”. Przejdź do Contents/MacOS
i skopiuj plik trybu uśpienia.
Przejdź do /usr/bin
(możesz użyć skrótu ⇧+ ⌘+ Gi wpisz katalog) i wklej plik binarny. Teraz będziesz mógł wpisać polecenie sleepdisplay
w Terminalu lub przez SSH, a wyświetlacz natychmiast przejdzie w tryb uśpienia.
Mam nadzieję że to pomoże!
Oto prosty skrypt powłoki, który to zrobi.
#!/usr/bin/env bash
open /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app
Spowoduje to uruchomienie / uruchomienie wszelkich ustawień włączonych wygaszacza ekranu na tym komputerze.
Poniższy skrypt wykona zadanie (w systemie Leopard i nowszych), ale należy go uruchomić z sudo
:
Założeniem jest to, że pmset
można ustawić czas do uśpienia wyświetlacza, ale problem polega na tym, że wartość 0 wyłącza tę funkcję, zamiast ustawiać opóźnienie na zero, a wartość 1 oznacza pełne jednominutowe opóźnienie. Magia polega na tym, że wartość 2 ^ 31 wydaje się być przechowywana jako zero ujemne, które magicznie działa jako „natychmiast wyłącz wyświetlacz”.
W Tygrysie i wcześniejszych potrzebna była inna liczba magiczna, ponieważ do przechowywania opóźnień w minutach użyto wewnętrznej zmiennej o różnych bitach, aż do wyłączenia wyświetlacza.
To naśladuje zachowanie control- shift- ejecti może być używane na MacBooku Airs bez ejectklucza.
#!/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
w systemie macOS Sierra
pmset displaysleepnow
caffeinate -u -t 1
pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29
wyniki <4 to uśpiony wyświetlaczmały serwer HTTP z węzłem do zdalnego ustawiania stanu ekranu komputera Mac: https://github.com/ycardon/switch-api
"echo $[$(pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29) - 4]"
(używając tego do wartości prawda / fałsz „czy ekran jest włączony?”).
Uruchom następujące polecenie, aby wykonać krótki AppleScript, który uśpi ekran:
osascript -e 'tell application "System Events" to sleep'
Nazwa polecenia sugeruje, że może umieścić cały system do snu w pewnych okolicznościach, ale nie mogłem się stało w ograniczonym testów: Testowałem go na skrypcie zacząłem krótko przed wykonaniem tego polecenia, i który został uruchomiony na kilka minut, aż „obudzę” system. Nadal drukował przez cały czas.
Naprawdę mam nadzieję, że ta odpowiedź nie jest na uboczu. Mój ulubiony sposób na spanie, ponowne uruchomienie, wyłączenie - a co najważniejsze zablokowanie - komputer Mac używa Alfred (program uruchamiający aplikacje).
Nie wymaga żadnych skryptów, znajomości skryptów ani użycia terminala, co jest genialne.
Jeśli jednak CHCESZ specjalnie użyć terminala, prawdopodobnie nie jest to rozwiązanie dla Ciebie.
Cóż, to jest stare, ale wydaje się, że nigdzie nie ma naprawdę dobrych odpowiedzi na to pytanie.
Mam skrypt AppleScript do działania, chociaż wymaga on aplikacji innej firmy, nieobsługiwanej i niezarejestrowalnej - Extra Suites. Można go pobrać na starej stronie dewelopera .
# 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
Włączyłem go również do przepływu pracy Alfreda .
Proszę bardzo -
sudo su
pmset displaysleepnow
Korzystanie z Alfreda (bezpłatny w AppStore) to świetny sposób na uśpienie wyświetlacza po prostu przez napisanie: „sleep”. Nie ma nic prostszego.
Oczywiście Alfred robi znacznie więcej, możesz także ponownie uruchomić komputer, wylogować się, opróżnić kosz, zablokować, wyłączyć i wiele innych rzeczy.
Nie potrzebujesz dodatkowej aplikacji, po prostu użyj tell application "Finder" to sleep
Aplikacja Launchbar działa równie dobrze jak Alfred. W moim przypadku spacja CMD, a następnie S [Sleep] - prosta i szybka