Я хотів би мати можливість вимкнути екран із командного рядка.
Я знаю, що є комбінація клавіш ctrl+ ⇧+, ⏏але я хочу це зробити зі скрипту оболонки або віддалено.
Чи є спосіб?
Я хотів би мати можливість вимкнути екран із командного рядка.
Я знаю, що є комбінація клавіш ctrl+ ⇧+, ⏏але я хочу це зробити зі скрипту оболонки або віддалено.
Чи є спосіб?
Відповіді:
В OS X 10.9 можна просто зробити pmset displaysleepnow
. Це негайно вимкне ваш дисплей, не змінюючи жодних налаштувань і не переводячи весь хост у режим сну.
Ескаліровані привілеї здаються не потрібними (принаймні, для останніх версій OS X), але якщо ви отримаєте повідомлення про неадекватні привілеї, ви можете це зробити sudo pmset displaysleepnow
.
На основі відгуків коментаторів, це не доступно в ОС X 10.8 або раніше.
У той час як я не зміг знайти команду , яка буде спати дисплей спочатку, є додаток завантаження , який буде робити це. Тут є два варіанти.
Встановіть додаток у папку «Програми» та запустіть термінал або SSH open /Applications/Sleep\ Display.app
Клацніть правою кнопкою миші на додаток із папки "Завантаження" та натисніть "Показати зміст пакета". Перейдіть до Contents/MacOS
та скопіюйте файл сну дисплея.
Перейдіть до /usr/bin
(ви можете використовувати ярлик ⇧+ ⌘+ Gта введіть каталог) та вставте двійковий файл. Тепер ви зможете набрати команду sleepdisplay
в термінал або через SSH, і дисплей негайно перейде до сну.
Сподіваюся, це допомагає!
Ось простий скрипт оболонки, який це зробить.
#!/usr/bin/env bash
open /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app
Це запустить / запустить усі налаштування, які ви включили для Screen Saver на цьому комп’ютері.
Наступний скрипт виконає роботу (в Leopard та пізніших версіях), але його потрібно запустити sudo
:
Припущення полягає в тому, що pmset
можна встановити час до сну дисплея, але проблема полягає в тому, що значення 0 вимикає функцію, а не встановлює затримку на нуль, а значення 1 - повну хвилину затримки. Магія тут полягає в тому, що значення 2 ^ 31, схоже, зберігається як негативний нуль, який магічно функціонує як «негайно вимкнути дисплей».
У Тигра і раніше було потрібне інше магічне число, тому що для зберігання затримки, хвилин, поки дисплей не вимкнеться, використовується внутрішня змінна розмір біт.
Це імітує поведінку control- shift- ejectі може використовуватися на MacBook Airs без ejectключа.
#!/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
на macOS Sierra
pmset displaysleepnow
caffeinate -u -t 1
pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29
результати <4 - сплячий дисплейневеликий сервер HTTP-сервера для віддаленого встановлення статусу екрана вашого Mac: https://github.com/ycardon/switch-api
"echo $[$(pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29) - 4]"
(використовуючи це значення true / false "екран увімкнено?").
Виконайте таку команду, щоб виконати короткий AppleScript, який переводить дисплей у режим сну:
osascript -e 'tell application "System Events" to sleep'
Ім'я команди передбачає , що це може поставити всю систему сну при деяких обставинах, але я не міг зробити це сталося в обмеженому тестуванні: Я тестував його за допомогою сценарію оболонки я почав незадовго перед виконанням цієї команди, і було запущено на кілька хвилин, поки я "не прокинув" систему. Він продовжував друкувати вихід протягом усього часу.
Дуже сподіваюся, що ця відповідь не надто вибита з колії. Мій улюблений спосіб спати, перезапустити, вимкнути - і найголовніше заблокувати - Mac використовує Альфред (запуск програми).
Тут не потрібні сценарії, знання сценаріїв або використання терміналу, що є геніальним.
Однак якщо ви конкретно ХОЧЕТЕ використовувати термінал, це, ймовірно, не є рішенням для вас.
Що ж, це стара, але, здається, ніде справді не вдається відповісти на це питання.
Я змусив AppleScript працювати, хоча він вимагає стороннього, непідтримуваного та незареєстрованого додатка - Extra Suites. Його можна завантажити на старому веб-сайті розробника .
# 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
Я також включив його в робочий процес Альфреда .
Ось ви йдете -
sudo su
pmset displaysleepnow
Використання Альфреда (безкоштовно в AppStore) - це прекрасний спосіб перевести дисплей у режим сну, просто написавши: "спати". Не стає простішим за це.
Звичайно, Альфред робить набагато більше того, ви також можете перезапустити, вийти з системи, порожнє сміття, блокування, відключення та багато іншого.
Не потрібні додаткові програми, просто користуйтеся tell application "Finder" to sleep
Додаток Launchbar працює однаково добре, як і Альфред. У моєму випадку пробіл CMD потім S [Сон] - простий і швидкий