Ekranı Terminal'den nasıl uyuyabilirim?


Yanıtlar:


71

OS X 10.9'da basitçe yapabilirsiniz pmset displaysleepnow. Bu, ayarlarınızı değiştirmeden veya tüm ana bilgisayarı uyku moduna geçirmeden ekranı hemen kapatır.

Yükseltilmiş ayrıcalıklar gerekli görünmüyor (en azından OS X'in son sürümleriyle), ancak yetersiz ayrıcalıklar hakkında bir mesaj alırsanız, başarabilirsiniz sudo pmset displaysleepnow.

Yorum yapanların geri bildirimlerine dayanarak, bu OS X 10.8 veya daha önceki sürümlerde mevcut değildir.


22

Ekranı doğal olarak uyuyacak bir komut bulamamama rağmen indireceğiniz bir uygulama var. Buradan iki seçenek var.

  1. Uygulamayı Uygulamalar klasörüne ve Terminal veya SSH çalıştırmasından yükleyin open /Applications/Sleep\ Display.app

  2. İndirilenler klasöründen uygulamaya sağ tıklayın ve "Paket İçeriğini Göster" i tıklayın. Contents/MacOSSleepdisplay dosyasına gidin ve kopyalayın.

    Gezin /usr/bin( + + Gkısayolunu kullanabilir ve dizini girebilirsiniz ) ve ikili dosyayı yapıştırın. Şimdi komutu sleepdisplayTerminal'e veya SSH'ye yazabileceksiniz ve ekran hemen uykuya geçecektir.

Bu yardımcı olur umarım!


7

İşte yapacak basit bir kabuk betiği.

#!/usr/bin/env bash
open /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app

Bu, o bilgisayarda Ekran Koruyucu için etkinleştirdiğiniz ayarları çalıştırır / başlatır.


Bunu beğendim. Bu kodu / usr / local / bin / ss, chmod + x dosyalarına kopyaladım / yapıştırdım ve şimdi ekran koruyucuyu etkinleştirmek için komut satırına 'ss yazabilirim. Ekran koruyucusu, ekran koruyucuyu etkinleştirdikten bir dakika sonra bir şifre isteyecek şekilde yapılandırılacak (daha sonra düşürülebilir, gerekirse
sanırım

7

Aşağıdaki komut dosyası işi yapacak (Leopard ve sonrasında), ancak bununla çalışılması gerekir sudo:

Öngörü, pmsetekran uykuya geçene kadar bir süre ayarlayabilmektir, ancak sorun, gecikmeyi sıfıra ayarlamak yerine 0 değerinin özelliği kapatması ve 1 değerinin tam bir dakikalık gecikme olmasıdır. Buradaki sihir, 2 ^ 31 değerinin, negatif olarak "ekranı hemen kapat" olarak işlev gören negatif sıfır olarak kaydedilmiş gibi görünmesidir.

Tiger ve önceki sürümlerde, farklı bir sihirli sayıya ihtiyaç vardı, çünkü ekran kapanana kadar dakikalar içinde gecikmeyi saklamak için dahili olarak farklı bir bit büyüklüğü değişkeni kullanıldı.

Bu taklit davranışı control- shift- ejectve bir olmadan MacBook havalandırır kullanılabilir ejecttuşu.

#!/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

macOS'da Sierra

  • uyku ekranı: pmset displaysleepnow
  • uyanık göster: caffeinate -u -t 1
  • Test durumu: pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29<4 sonuçları uyuyan bir ekran

Mac'inizin ekran durumunu uzaktan ayarlamak için küçük bir düğüm HTTP sunucusu: https://github.com/ycardon/switch-api


Yaparak koşullu mantık için 0 veya sıfır olmayan bir çıkış kodu alabilirsiniz "echo $[$(pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29) - 4]"( bunu true / false olarak mı kullanıyorsunuz "ekran açık?").
atwixtor

4

Ekranı uyku moduna geçiren kısa bir AppleScript çalıştırmak için aşağıdaki komutu çalıştırın:

osascript -e 'tell application "System Events" to sleep'

Komut adı, bazı durumlarda tüm sistemin uyku moduna geçebileceğini öne sürüyor , ancak bunun sınırlı bir testte yapılmasını sağlayamadım: Bu komutu çalıştırmadan kısa bir süre önce başlattığım bir kabuk betiği ile test ettim ve birkaç Ben sistemi "uyandı" kadar dakika. Tüm zaman boyunca çıktı yazdırmaya devam etmişti.


2

Gerçekten, bu cevabın dayak izi dışında olmadığını umuyorum. En sevdiğim yol uyku, yeniden başlatma, kapatma - ve en önemlisi kilitleme - Mac, Alfred (uygulama başlatıcısı) kullanıyor.

Herhangi bir komut dosyası, komut dosyası bilgisi veya mükemmel olan terminal kullanımı gerektirmez.

Bununla birlikte, özellikle terminali kullanmak istiyorsanız, bu muhtemelen sizin için bir çözüm değildir.


2

Uyanmak: caffeinate -u -t 2

Uyku: pmset displaysleepnow


1

Displayleep'in pmsetdeğerini değiştirmek için bu komutu kullanabilirsiniz.

pmset -a displaysleep 1

(kök gerektirir)


1

Açık kaynak kodlu github project maclock'a bir göz atın

Varsayılan olarak, sadece ekran koruyucuyu başlatır, ancak ekranı uyku moduna geçirebilirsiniz:

maclock --display

Kapakların altında, aslında sadece çağıran bir bash betiği var:

pmset displaysleepnow

1

Evet, bu eski bir sorundur, ancak görünen o ki bu soru için hiçbir yerde gerçekten iyi cevaplar yok.

Çalışması için bir AppleScript aldım, ancak üçüncü taraf, bakımsız ve kayıt altına alınamayan bir uygulama gerektiriyor - Extra Suites. Geliştiricinin eski web sitesinden indirilebilir .

# 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

Ayrıca bunu Alfred Workflow'a dahil ettim .


1

Ben yaptım sudo shutdown -s now.

Bunu yapmak için yönetici ayrıcalığına ihtiyacınız olacağını unutmayın.



-1

Alfred'i (AppStore'da ücretsiz) kullanmak, ekranı yalnızca yazarak uyku moduna geçirmek için harika bir yoldur: "uyku". Bundan daha basit olamaz.

Elbette Alfred bundan çok daha fazlasını yapar, ayrıca yeniden başlayabilir, çıkış yapabilir, boş çöp kutusu, kilitleme, kapatma ve daha birçok şey yapabilirsiniz.


1
Bu, bunu uzaktan veya ssh ile yapma ihtiyacına yönelik değildir.
TJ Luoma


-2

Uygulamaya Launchbar, Alfred gibi eşit derecede çalışır. Benim durumumda CMD boşluk çubuğu sonra S [Uyku] - basit ve hızlı


Bu soruya cevap vermiyor. gregseth, bilgisayarı üçüncü taraf bir yardımcı programla uyku moduna geçirmenin bir yolunu değil, ekranı komut satırından uykuya geçirmenin bir yolunu arıyor .
Timothy Mueller-Harder
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.