Jak spać wyświetlacz z terminalu?


Odpowiedzi:


71

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.


22

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.

  1. Zainstaluj aplikację w folderze Aplikacje i z poziomu terminalu lub SSH open /Applications/Sleep\ Display.app

  2. Kliknij prawym przyciskiem myszy aplikację z folderu Pobrane i kliknij „Pokaż zawartość opakowania”. Przejdź do Contents/MacOSi 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 sleepdisplayw Terminalu lub przez SSH, a wyświetlacz natychmiast przejdzie w tryb uśpienia.

Mam nadzieję że to pomoże!


7

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.


Ten mi się podoba. Skopiowałem / wkleiłem ten kod do pliku / usr / local / bin / ss, chmod + x, i mogę teraz wpisać „ss” w wierszu poleceń, aby aktywować wygaszacz ekranu. Z kolei wygaszacz ekranu jest skonfigurowany w taki sposób, aby pytał o hasło w minutę po aktywacji wygaszacza ekranu (który, jak sądzę, można go jeszcze obniżyć)
fwielstra

7

Poniższy skrypt wykona zadanie (w systemie Leopard i nowszych), ale należy go uruchomić z sudo:

Założeniem jest to, że pmsetmoż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

5

w systemie macOS Sierra

  • wyświetlacz snu: pmset displaysleepnow
  • wyświetlacz budzenia: caffeinate -u -t 1
  • stan testowy: pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29wyniki <4 to uśpiony wyświetlacz

mały serwer HTTP z węzłem do zdalnego ustawiania stanu ekranu komputera Mac: https://github.com/ycardon/switch-api


Możesz uzyskać 0 lub niezerowy kod wyjścia dla logiki warunkowej, wykonując to "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?”).
atwixtor

4

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.


2

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.



1

Możesz użyć pmsetpolecenia, aby zmienić wartość parametru displayleep, coś w rodzaju

pmset -a displaysleep 1

(wymaga rootowania)


1

Spójrz na maclock projektu github typu open source

Domyślnie po prostu uruchamia wygaszacz ekranu, ale możesz uśpić wyświetlacz za pomocą:

maclock --display

Pod przykryciem jest to skrypt bash, który w zasadzie tylko wywołuje:

pmset displaysleepnow

1

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 .


1

Zrobiłem to z sudo shutdown -s now.

Pamiętaj jednak, że będziesz potrzebować do tego uprawnień administratora.



-1

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.


1
Nie rozwiązuje to jego potrzeby zrobienia tego zdalnie lub przez ssh.
TJ Luoma,


-2

Aplikacja Launchbar działa równie dobrze jak Alfred. W moim przypadku spacja CMD, a następnie S [Sleep] - prosta i szybka


To nie odpowiada na pytanie. gregseth nie szuka sposobu na uśpienie komputera za pomocą narzędzia innej firmy, ale sposób na uśpienie wyświetlacza z wiersza poleceń .
Timothy Mueller-Harder
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.