我希望能夠從命令行關閉屏幕。
我知道這裡有鍵盤快捷鍵 ctrl kbd> + ⇧ kbd> + ⏏ kbd>,但我想從Shell腳本或遠程執行。
有辦法嗎?
我希望能夠從命令行關閉屏幕。
我知道這裡有鍵盤快捷鍵 ctrl kbd> + ⇧ kbd> + ⏏ kbd>,但我想從Shell腳本或遠程執行。
有辦法嗎?
在OS X 10.9中,您只需執行 pmset displaysleepnow
。這將立即關閉顯示器,而無需更改任何設置或使整個主機進入睡眠狀態。
似乎不需要升級的特權(至少對於最新版本的OS X),但是如果您會收到有關權限不足的消息,您可以執行 sudo pmset displaysleepnow
。
基於評論者的反饋,這在OS X 10.8或更早版本中不可用。
雖然我找不到能使顯示器自然休眠的命令,但您下載的有一個 app可以做到。從這裡有兩個選項。
將應用安裝到Applications文件夾,然後從終端或SSH運行 open / Applications / Sleep \ Display.app
從“下載”文件夾中右鍵單擊該應用,然後單擊“顯示軟件包內容”。導航到 Contents / MacOS
並複制sleepdisplay文件。
導航到 / usr / bin
(可以使用⇧ kbd > + ⌘ kbd> + G kbd>快捷方式,然後在中鍵入目錄,然後粘貼二進製文件。現在,您可以在終端中或通過SSH鍵入命令 sleepdisplay
,並且顯示器將立即進入睡眠狀態。
希望這會有所幫助!
這是一個簡單的shell腳本,可以執行此操作。
#!/ usr / bin / env bashopen /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine .app
這將運行/啟動您在該計算機上為屏幕保護程序啟用的任何設置。
以下腳本將完成此任務(在Leopard和更高版本中),但必須使用 sudo
運行:
前提是 pmset
可以設置直到顯示器進入睡眠狀態的時間,但是問題是值0會關閉功能,而不是將延遲設置為零,而值1則是一整分鐘的延遲。這裡的魔力在於2 ^ 31的值似乎存儲為負零,這神奇地起到了“立即關閉顯示”的作用。
在Tiger和更早的版本中,需要使用不同的幻數,因為內部使用了不同的位大小的變量來存儲延遲(以分鐘為單位),直到顯示器關閉為止。
這模仿了 control kbd>- shift kbd>- eject kbd>的行為,並且可以在沒有 eject kbd>鍵的MacBook Air上使用
#!/ bin / bashoriginal_setting =`/ usr / bin / pmset -g |。 / usr / bin / awk'/ displaysleep / {print $ 2}'`magic_number = 2147483648 / usr / bin / pmset -a displaysleep $ magic_number;睡1 / usr / bin / pmset -a displaysleep $ original_setting
在macOS Sierra上
pmset displaysleepnow
caffeinate -u -t 1
pmset -g powerstate IODisplayWrangler |尾巴-1 |cut -c29
結果<4是一個處於休眠狀態的顯示用於遠程設置Mac屏幕狀態的小型節點HTTP服務器: https://github.com/ycardon/switch-api
運行以下命令以執行簡短的AppleScript,使顯示器進入睡眠狀態:
osascript -e'告訴應用程序“系統事件”進入睡眠狀態”
命令名稱表明它在某些情況下可能使整個系統進入睡眠狀態,但是在有限的測試中我無法做到這一點:我使用在執行前不久啟動的shell腳本對其進行了測試該命令運行了幾分鐘,直到我“喚醒”系統。在整個時間內它一直在打印輸出。
真的希望這個答案不會太過人為。我最喜歡的睡眠,重新啟動,關閉(最重要的是鎖定)的方式是,Mac正在使用Alfred(應用啟動器)。
它不需要任何腳本,腳本知識或使用終端,
但是,如果您特別想使用終端,這可能不是您的解決方案。
您可以使用 pmset
命令更改displaysleep的值,例如
pmset -a displaysleep 1
(需要root)
嗯,這是一個古老的問題,但是似乎這個問題在任何地方都沒有很好的答案。
我已經使用了AppleScript,儘管它需要第三方,無需維護且無法註冊的應用-額外套件。可以在開發人員的舊網站上下載它。
#獲取左上角的當前狀態,然後將其設置為sleep display。 “事件”告訴公開偏好設置set給出的活動以獲取左上角屏幕的活動,將左上角屏幕的屬性設置為{activity:sleep display} end tellend tell#使用鼠標激活左上角的熱角。 [直接移動到{0,0}不能正常工作,告訴應用程序“ Extra Suites” ES移動鼠標{1,1} ES移動鼠標{0,0} end tell#恢復左上角hot.corner的狀態。tell應用程序“系統事件”告訴顯示首選項延遲1將屏幕左上角的活動設置為giveActivty end tellend tell#擺脫Extra Suites nag window.tell應用程序“ Extra Suites”告訴
我已經也將其合併到 Alfred工作流程。
看看開源github項目 maclock
默認情況下,它只是啟動屏幕保護程序,但是您可以通過以下方式使顯示器進入睡眠狀態:
maclock --display
在幕後,這實際上是一個bash腳本,僅調用:
pmset displaysleepnow
要休眠顯示器:
pmset displaysleepnow
要檢查狀態:
pmset -g powerstate IODisplayWrangler | tail -1 | grep -q USEABLE#如果屏幕打開,則退出0(成功)
使用Alfred(在AppStore免費提供)是一種使顯示器進入睡眠狀態的好方法,只需編寫:“ sleep”即可。沒有比這更簡單的了。
當然,阿爾弗雷德(Alfred)所做的還遠遠不止於此,您還可以重新啟動,註銷,清空垃圾箱,鎖定,關閉等等。
不需要額外的應用程序,只需使用 tell應用程序“ Finder”睡覺
應用啟動欄與Alfred一樣好用。就我而言,CMD空格鍵然後是S [Sleep]-簡單,快速