Saya ingin dapat mematikan layar saya dari baris perintah.
Saya tahu ada pintasan keyboard ctrl+ ⇧+ ⏏tapi saya ingin melakukannya dari skrip shell atau dari jarak jauh.
Apakah ada cara?
Saya ingin dapat mematikan layar saya dari baris perintah.
Saya tahu ada pintasan keyboard ctrl+ ⇧+ ⏏tapi saya ingin melakukannya dari skrip shell atau dari jarak jauh.
Apakah ada cara?
Jawaban:
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.
Meskipun saya belum dapat menemukan perintah yang akan mengaktifkan tampilan asli, ada aplikasi yang Anda unduh yang akan melakukannya. Ada dua opsi dari sini.
Instal aplikasi ke folder Aplikasi dan dari Terminal atau SSH dijalankan open /Applications/Sleep\ Display.app
Klik kanan pada aplikasi dari folder Unduhan dan klik "Tampilkan Isi Paket". Arahkan ke Contents/MacOS
dan salin file tampilan tidur.
Arahkan ke /usr/bin
(Anda dapat menggunakan ⇧+ ⌘+ Gpintas dan ketik direktori) dan tempelkan file biner. Anda sekarang dapat mengetik perintah sleepdisplay
ke Terminal atau melalui SSH dan layar akan segera tidur.
Semoga ini membantu!
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.
Script berikut akan melakukan pekerjaan (di Leopard dan yang lebih baru), tetapi harus dijalankan dengan sudo
:
Premisnya adalah yang pmset
dapat 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
di macOS Sierra
pmset displaysleepnow
caffeinate -u -t 1
pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29
hasil <4 adalah tampilan tidurserver HTTP simpul kecil untuk mengatur status layar Mac Anda dari jarak jauh: https://github.com/ycardon/switch-api
"echo $[$(pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29) - 4]"
(menggunakan ini ke true / false "is screen on?").
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.
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.
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 .
Ini dia -
sudo su
pmset displaysleepnow
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.
Tidak perlu aplikasi tambahan, cukup gunakan tell application "Finder" to sleep
Aplikasi Launchbar berfungsi sama baiknya dengan Alfred. Dalam kasus saya, spasi CMD kemudian S [Tidur] - sederhana dan cepat