Bagaimana saya bisa tidur tampilan dari Terminal?

Jawaban:

71

Di OS X 10.9, Anda cukup melakukannya pmset displaysleepnow. Ini akan segera mematikan tampilan Anda tanpa mengubah pengaturan Anda atau membuat seluruh host tidur.

Peningkatan hak istimewa tampaknya tidak diperlukan (setidaknya dengan versi terbaru OS X), tetapi jika Anda mendapatkan pesan tentang hak istimewa yang tidak memadai, Anda bisa melakukannya sudo pmset displaysleepnow.

Berdasarkan umpan balik dari komentator, ini tidak tersedia di OS X 10.8 atau sebelumnya.

Sarah G
sumber
22

Meskipun saya belum dapat menemukan perintah yang akan mengaktifkan tampilan asli, ada aplikasi yang Anda unduh yang akan melakukannya. Ada dua opsi dari sini.

  1. Instal aplikasi ke folder Aplikasi dan dari Terminal atau SSH dijalankan open /Applications/Sleep\ Display.app

  2. Klik kanan pada aplikasi dari folder Unduhan dan klik "Tampilkan Isi Paket". Arahkan ke Contents/MacOSdan salin file tampilan tidur.

    Arahkan ke /usr/bin(Anda dapat menggunakan + + Gpintas dan ketik direktori) dan tempelkan file biner. Anda sekarang dapat mengetik perintah sleepdisplayke Terminal atau melalui SSH dan layar akan segera tidur.

Semoga ini membantu!

Matt Love
sumber
7

Inilah skrip shell sederhana yang akan melakukannya.

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

Ini akan menjalankan / memulai pengaturan apa pun yang Anda aktifkan untuk Screen Saver di komputer itu.

afragen
sumber
Saya suka yang ini. Saya menyalin / menempelkan kode ini ke file / usr / local / bin / ss, chmod + x di atasnya, dan sekarang dapat mengetikkan 'ss' di baris perintah untuk membuat screen saver aktif. Screen saver pada gilirannya dikonfigurasi untuk meminta kata sandi satu menit setelah mengaktifkan screen saver (yang dapat diturunkan lebih lanjut, saya percaya, jika perlu)
fwielstra
7

Script berikut akan melakukan pekerjaan (di Leopard dan yang lebih baru), tetapi harus dijalankan dengan sudo:

Premisnya adalah yang pmsetdapat mengatur waktu hingga tampilan tidur, tetapi masalahnya adalah bahwa nilai 0 mematikan fitur, daripada mengatur penundaan ke nol, dan nilai 1 adalah penundaan satu menit penuh. Keajaiban di sini adalah bahwa nilai 2 ^ 31 tampaknya disimpan sebagai nol negatif, yang secara ajaib berfungsi sebagai "matikan layar segera".

Di Tiger dan sebelumnya, angka ajaib yang berbeda diperlukan, karena variabel ukuran bit yang berbeda digunakan secara internal untuk menyimpan penundaan, dalam hitungan menit, hingga layar mati.

Ini meniru perilaku control- shift- eject, dan dapat digunakan di MacBook Air tanpa ejectkunci.

#!/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
Daniel
sumber
5

di macOS Sierra

  • tampilan tidur: pmset displaysleepnow
  • bangun layar: caffeinate -u -t 1
  • status uji: pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29hasil <4 adalah tampilan tidur

server HTTP simpul kecil untuk mengatur status layar Mac Anda dari jarak jauh: https://github.com/ycardon/switch-api

Yann Cardon
sumber
Anda bisa mendapatkan kode keluar 0 atau non-nol untuk logika kondisional dengan melakukan "echo $[$(pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29) - 4]"(menggunakan ini ke true / false "is screen on?").
atwixtor
4

Jalankan perintah berikut untuk menjalankan AppleScript pendek yang membuat tampilan mati:

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

Nama perintah menunjukkan bahwa itu mungkin membuat seluruh sistem tidur dalam beberapa keadaan, tapi saya tidak bisa mewujudkannya dalam pengujian terbatas: Saya mengujinya dengan skrip shell yang saya mulai sesaat sebelum menjalankan perintah ini, dan itu berjalan selama beberapa menit sampai saya "membangunkan" sistem. Itu terus mencetak hasil selama seluruh waktu.

Daniel Beck
sumber
2

Sangat berharap jawaban ini tidak terlalu jauh dari jalur. Cara favorit saya untuk tidur, nyalakan kembali, matikan - dan yang paling penting kunci - Mac menggunakan Alfred (peluncur aplikasi).

Itu tidak memerlukan skrip, pengetahuan skrip atau penggunaan terminal, yang brilian.

Namun, jika Anda secara khusus INGIN menggunakan terminal, ini mungkin bukan solusi untuk Anda.

Mitch Rosen
sumber
2

Bangun: caffeinate -u -t 2

Tidur: pmset displaysleepnow

Dermot
sumber
1

Anda bisa menggunakan pmsetperintah untuk mengubah nilai untuk tampilan tidur, sesuatu seperti

pmset -a displaysleep 1

(membutuhkan root)

da4
sumber
1

Lihatlah proyek open source github maclock

Secara default, ini hanya meluncurkan screensaver, tetapi Anda dapat mematikan tampilan dengan:

maclock --display

Di bawah selimut, itu adalah skrip bash yang pada dasarnya hanya memanggil:

pmset displaysleepnow
rubel
sumber
1

Yah, ini yang lama, tapi sepertinya tidak ada jawaban yang bagus untuk pertanyaan ini di mana pun.

Saya membuat AppleScript berfungsi, meskipun itu membutuhkan aplikasi pihak ketiga, tidak terawat, dan tidak dapat didaftarkan — Suite Tambahan. Itu dapat diunduh di situs web lama pengembang .

# 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

Saya juga memasukkannya ke dalam Alfred Workflow .

Bruce
sumber
1

Saya melakukannya dengan sudo shutdown -s now.

Perhatikan bahwa Anda memerlukan hak administrator untuk melakukan ini.

Tom Shen
sumber
0

Ini dia -

sudo su
pmset displaysleepnow
Manas Sharma
sumber
-1

Menggunakan Alfred (gratis di AppStore) adalah cara yang bagus untuk membuat tampilan tidur hanya dengan menulis: "tidur". Tidak menjadi lebih sederhana dari itu.

Tentu saja Alfred melakukan lebih dari itu, Anda juga dapat memulai kembali, logout, sampah kosong, kunci, shutdown dan banyak lagi.

Alejandro Escobell
sumber
1
Ini tidak menjawab kebutuhannya untuk melakukan ini dari jarak jauh atau melalui ssh.
TJ Luoma
-2

Tidak perlu aplikasi tambahan, cukup gunakan tell application "Finder" to sleep

pengguna81191
sumber
1
Bukankah ini tidur seluruh komputer?
nohillside
-2

Aplikasi Launchbar berfungsi sama baiknya dengan Alfred. Dalam kasus saya, spasi CMD kemudian S [Tidur] - sederhana dan cepat

Norm Beazer
sumber
Ini tidak menjawab pertanyaan. gregseth tidak mencari cara untuk membuat komputer tidur dengan utilitas pihak ketiga, tetapi cara untuk membuat tampilan tidur dari baris perintah .
Timothy Mueller-Harder