Tôi muốn có thể tắt màn hình của tôi từ dòng lệnh.
Tôi biết có phím tắt ctrl+ ⇧+ ⏏nhưng tôi muốn làm điều đó từ tập lệnh shell hoặc từ xa.
Là có một cách?
Tôi muốn có thể tắt màn hình của tôi từ dòng lệnh.
Tôi biết có phím tắt ctrl+ ⇧+ ⏏nhưng tôi muốn làm điều đó từ tập lệnh shell hoặc từ xa.
Là có một cách?
Câu trả lời:
Trong OS X 10.9, bạn chỉ cần làm pmset displaysleepnow
. Điều này sẽ ngay lập tức tắt màn hình của bạn mà không thay đổi bất kỳ cài đặt nào của bạn hoặc đưa toàn bộ máy chủ vào chế độ ngủ.
Các đặc quyền nâng cao dường như không được yêu cầu (ít nhất là với các phiên bản OS X gần đây), nhưng nếu bạn nhận được thông báo về các đặc quyền không đầy đủ, bạn có thể làm sudo pmset displaysleepnow
.
Dựa trên phản hồi từ những người bình luận, điều này không có sẵn trong OS X 10.8 trở về trước.
Mặc dù tôi không thể tìm thấy một lệnh sẽ ngủ màn hình nguyên bản, nhưng có một ứng dụng bạn tải xuống sẽ thực hiện. Có hai lựa chọn từ đây.
Cài đặt ứng dụng vào thư mục Ứng dụng và từ Terminal hoặc SSH chạy open /Applications/Sleep\ Display.app
Nhấp chuột phải vào ứng dụng từ thư mục Tải xuống và nhấp vào "Hiển thị nội dung gói". Điều hướng đến Contents/MacOS
và sao chép tập tin ngủ ngon.
Navigate to /usr/bin
(bạn có thể sử dụng ⇧+ ⌘+ Gphím tắt và gõ thư mục trong) và dán các tập tin nhị phân. Bây giờ bạn sẽ có thể nhập lệnh sleepdisplay
vào Terminal hoặc thông qua SSH và màn hình sẽ ngay lập tức chuyển sang chế độ ngủ.
Hi vọng điêu nay co ich!
Đây là một kịch bản shell đơn giản sẽ làm điều đó.
#!/usr/bin/env bash
open /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app
Điều này sẽ chạy / bắt đầu bất kỳ cài đặt nào bạn đã bật cho Screen Saver trên máy tính đó.
Kịch bản sau đây sẽ thực hiện công việc (trong Leopard và sau này), nhưng nó phải được chạy với sudo
:
Tiền đề là pmset
có thể đặt thời gian cho đến khi hiển thị chế độ ngủ, nhưng vấn đề là giá trị 0 sẽ tắt tính năng, thay vì đặt độ trễ thành 0 và giá trị 1 là trễ toàn bộ một phút. Điều kỳ diệu ở đây là giá trị 2 ^ 31 dường như được lưu dưới dạng số 0 âm, có chức năng kỳ diệu là "tắt màn hình ngay lập tức".
Trong Tiger và trước đó, một số ma thuật khác là cần thiết, bởi vì một biến có kích thước bit khác nhau được sử dụng bên trong để lưu trữ độ trễ, tính bằng phút, cho đến khi màn hình tắt.
Điều này bắt chước hành vi của control- shift- eject, và có thể được sử dụng trên MacBook Air mà không cần ejectchìa khóa.
#!/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
trên macOS Sierra
pmset displaysleepnow
caffeinate -u -t 1
pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29
kết quả <4 là màn hình ngủmột máy chủ HTTP nút nhỏ để đặt trạng thái màn hình cho máy Mac của bạn từ xa: https://github.com/ycardon/switch-api
"echo $[$(pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29) - 4]"
(sử dụng mã này thành true / false "trên màn hình?").
Chạy lệnh sau để thực thi một AppleScript ngắn đặt màn hình ở chế độ ngủ:
osascript -e 'tell application "System Events" to sleep'
Tên lệnh gợi ý rằng nó có thể khiến toàn bộ hệ thống ngủ trong một số trường hợp, nhưng tôi không thể thực hiện điều đó trong thử nghiệm giới hạn: Tôi đã thử nghiệm nó với một kịch bản shell tôi đã bắt đầu ngay trước khi thực hiện lệnh này và nó đã chạy được một vài vài phút cho đến khi tôi "đánh thức" hệ thống. Nó đã tiếp tục in đầu ra trong suốt thời gian.
Thực sự hy vọng câu trả lời này không quá lạc đề. Cách ưa thích của tôi để ngủ, khởi động lại, tắt máy - và quan trọng nhất là khóa - máy Mac đang sử dụng Alfred (trình khởi chạy ứng dụng).
Nó không yêu cầu bất kỳ kịch bản, kiến thức về các kịch bản hoặc sử dụng thiết bị đầu cuối, đó là tuyệt vời.
Tuy nhiên, nếu bạn đặc biệt MUỐN sử dụng thiết bị đầu cuối, đây có lẽ không phải là giải pháp cho bạn.
Chà, đây là một câu hỏi cũ, nhưng dường như không có câu trả lời thực sự tốt cho câu hỏi này ở bất cứ đâu.
Tôi đã nhận được một AppleScript để hoạt động, mặc dù nó đòi hỏi phải có ứng dụng của bên thứ ba, không rõ ràng và không thể đăng ký. Nó có thể được tải xuống trên trang web cũ của nhà phát triển .
# 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
Tôi cũng đã kết hợp nó vào Luồng công việc Alfred .
Bạn đi đây -
sudo su
pmset displaysleepnow
Sử dụng Alfred (miễn phí tại AppStore) là một cách tuyệt vời để đưa màn hình vào chế độ ngủ chỉ bằng cách viết: "ngủ". Không đơn giản hơn thế.
Tất nhiên Alfred làm được nhiều hơn thế, bạn cũng có thể khởi động lại, đăng xuất, bỏ trống, khóa, tắt máy và nhiều thứ khác.
Không cần thêm ứng dụng, chỉ cần sử dụng tell application "Finder" to sleep
Launchbar ứng dụng hoạt động tốt như Alfred. Trong trường hợp của tôi, phím cách CMD sau đó S [Ngủ] - đơn giản và nhanh chóng